十分钟学会一个设计模式---行为模式---迭代器模式

71 阅读1分钟
// 迭代器接口
template<typename T>
class Iterator {
public:
    virtual T &current() = 0;
    virtual void next() = 0;
};

// 容器
template<typename T>
class MyCollection {
public:
    Iterator<T> GetIterator() {

    }
};

// 迭代器实现自己的遍历方式
template<typename T>
class MyCollectionIterator : public Iterator<T> {
private:
    MyCollection<T> mc;
public:
    MyCollectionIterator(const MyCollectionIterator<T> &c) : mc(c) {}
    T &currnt() override {}
    void next() override {}
};


int main() {
    MyCollection<int> myCollection;
    Iterator<int> iter = myCollection.GetIterator();
    for(iter.begin(); !=iter.end(); iter++) {
        cout << iter.current();
    }
}