官方定义:
Iterator模式是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。
《STL源码剖析》中关于迭代器Iterator的描述:
STL设计的精髓在于,把容器(Containers)和算法(Algorithms)分开,彼此独立设计,最后再用迭代器(Iterator)把他们粘合在一起。可见迭代器在STL中的重要程度。迭代器已经作为一种设计思想被记录与《设计模式》中,它的意图在于“提供一种方法顺序访问一个聚合对象中的各个元素,而又不需暴露该对象的内部表示”。
迭代器的作用其实相当于一个智能指针(但不一定是指针),它指向容器内部的数据,可以通过operator *操作符来解指针获得数据的值,也可以通过operator ->操作符来获取数据的指针,还能够重载++,--等运算符来移动指针。
总结:
将基本常用算法从类的设计中脱离出来,简化了类的接口设计;
为相似存储结构的多类提供统计接口,既隐藏了类的实现细节,又方便对类内元素的处理。