c++的STL对容器有专门的迭代器(iterator)方法,不需自己实现细节直接调用即可
迭代器模式
定义:
按照一种方法顺序访问一个聚合对象各个元素,不暴露该对象内部细节
优点:
(1)一个聚合对象可以有多种遍历方式
(2)将数据保存和使用分离开,简化聚合类设计
(3)增加抽象层增加新的聚合类和迭代器类都很方便
缺点:
(1)增加聚合类时也需要增加迭代器类
(2)需要充分考虑到系统扩展
使用范围:
遍历访问聚合类且不须暴露其细节,且需为聚合类提供多种遍历方式时
如:容器遍历
结构:
aggregate:抽象聚合类
concrete_aggregate:具体聚合类
iterator:抽象迭代器类
concrete_iterator:具体迭代器类
实现:
可参照STL的迭代器案例
总结
(1)尽量用STL自带的迭代器,无需自己造轮子
(2)迭代器就是按照一定方法遍历元素