概述
场景
结构
示例
Iterator.cpp
1 template<typename T> 2 class Iterator 3 { 4 public: 5 virtual void first() = 0; 6 virtual void next() = 0; 7 virtual bool isDone() const = 0; 8 virtual T& current() = 0; 9 }; 10 11 template<typename T> 12 class MyCollection{ 13 14 public: 15 16 Iterator<T> GetIterator(){ 17 //... 18 } 19 20 }; 21 22 template<typename T> 23 class CollectionIterator : public Iterator<T>{ 24 MyCollection<T> mc; 25 public: 26 27 CollectionIterator(const MyCollection<T> & c): mc(c){ } 28 29 void first() override { 30 31 } 32 void next() override { 33 34 } 35 bool isDone() const override{ 36 37 } 38 T& current() override{ 39 40 } 41 }; 42 43 void MyAlgorithm() 44 { 45 MyCollection<int> mc; 46 47 Iterator<int> iter= mc.GetIterator(); 48 49 for (iter.first(); !iter.isDone(); iter.next()){ 50 cout << iter.current() << endl; 51 } 52 53 }
参考
迭代器模式c++实现
https://blog.csdn.net/u012611878/article/details/78010435
CSDN:MachineChen
原文:https://www.cnblogs.com/cxc1357/p/12320383.html