您的位置:首页 > 其它

Iterator设计模式,探究STL中迭代器的实现原理

2016-08-12 15:32 267 查看


官方定义:


Iterator模式是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。

《STL源码剖析》中关于迭代器Iterator的描述:

STL设计的精髓在于,把容器(Containers)和算法(Algorithms)分开,彼此独立设计,最后再用迭代器(Iterator)把他们粘合在一起。可见迭代器在STL中的重要程度。迭代器已经作为一种设计思想被记录与《设计模式》中,它的意图在于“提供一种方法顺序访问一个聚合对象中的各个元素,而又不需暴露该对象的内部表示”。

  迭代器的作用其实相当于一个智能指针(但不一定是指针),它指向容器内部的数据,可以通过operator *操作符来解指针获得数据的值,也可以通过operator ->操作符来获取数据的指针,还能够重载++,--等运算符来移动指针。

总结:
将基本常用算法从类的设计中脱离出来,简化了类的接口设计;
为相似存储结构的多类提供统计接口,既隐藏了类的实现细节,又方便对类内元素的处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式 STL