Iterator设计模式,探究STL中迭代器的实现原理
2016-08-12 15:32
267 查看
官方定义:
Iterator模式是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。
《STL源码剖析》中关于迭代器Iterator的描述:STL设计的精髓在于,把容器(Containers)和算法(Algorithms)分开,彼此独立设计,最后再用迭代器(Iterator)把他们粘合在一起。可见迭代器在STL中的重要程度。迭代器已经作为一种设计思想被记录与《设计模式》中,它的意图在于“提供一种方法顺序访问一个聚合对象中的各个元素,而又不需暴露该对象的内部表示”。
迭代器的作用其实相当于一个智能指针(但不一定是指针),它指向容器内部的数据,可以通过operator *操作符来解指针获得数据的值,也可以通过operator ->操作符来获取数据的指针,还能够重载++,--等运算符来移动指针。
总结:
将基本常用算法从类的设计中脱离出来,简化了类的接口设计;
为相似存储结构的多类提供统计接口,既隐藏了类的实现细节,又方便对类内元素的处理。
相关文章推荐
- 迭代器iterator原理和设计模式
- Head First 设计模式 (九) 迭代器与组合模式(Iterator & Composite pattern) C++实现
- STL中迭代器(iterator)的设计模式
- 设计模式(8) - 迭代器模式(iterator)- 实现ArrayList和linkedList的迭代器
- 设计模式之iterator模式到STL中iterator迭代器
- 测试类图Head First 设计模式 (九) 迭代器与组合模式(Iterator & Composite pattern) C++实现
- 设计模式示例四 Observer(观察者)和Iterator(迭代器)
- 用C++实现设计模式---两个迭代器的传说
- 迭代器设计模式的实现。
- java设计模式之迭代器 Iterator
- 设计模式学习—Iterator(迭代器)
- 责任链设计模式的原理与实现
- 《模式——工程化实现及扩展》(设计模式C# 版)《迭代器模式 Iterator》——“自我检验" 参考答案
- 常见设计模式的解析和实现(C++)之十八-Iterator模式
- 结构型模式之迭代器(Iterator)与组合模式(Composite Pattern)C++实现******
- 设计模式之二十二------ Iterator(迭代器)
- 浅学设计模式之迭代器<Iterator>模式
- 设计模式Iterator(迭代器) (转载)
- 设计模式学习—Iterator(迭代器)
- 设计模式之迭代器(Iterator Pattern)-笔记