编辑代码

#include <iostream>

class MyContainer {
public:
    int arr[3] = { 1, 2, 3 };
    
    class MyIterator {
    private:
        size_t _index;
        MyContainer& _ref;
        
    public:
        MyIterator(size_t index, MyContainer& container):
            _index(index),
            _ref(container) {}
            
        MyIterator& operator++() {
            ++_index;
            return *this;
        }
        
        int& operator*() {
            return _ref.arr[_index];
        }
        
        bool operator!=(const MyIterator& b) const {
            return this->_index != b._index;
        }
    };
    
    MyIterator begin() {
        return MyIterator(0, *this);
    }
    
    MyIterator end() {
        return MyIterator(3, *this);
    }
};

int main(void) {
    MyContainer container;
    
    for (int& i: container) {
        i *= 2;
    }
    
    for (const int& i: container) {
        std::cout << i << std::endl;
    }
    
    return 0;
}