灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2047回复:0

[C++技术]设计模式C++描述----20.迭代器(Iterator)模式

楼主#
更多 发布于:2012-09-06 11:35


一. 举例说明
我们知道,在 STL 里提供 Iterator 来遍历 Vector 或者 List 数据结构。
Iterator 模式也正是用来解决对一个聚合对象的遍历问题,将对聚合的遍历封装到一个类中进行,这样就避免暴露这个聚合对象的内部表示的可能。
例如在 STL 里有如相下结构:



二. 迭代器模式
定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。


比较经典的例子是 STL 里的 for_each 操作:
[cpp] // function called for each element    
void print (int elem)  
{  
    cout << elem << ' ';  
}  
  
int main()  
{  
        vector<int> coll;  
  
        INSERT_ELEMENTS(coll,1,9);  
  
        // for_each 对每个 elem 将调用 print(elem)    
        for_each (coll.begin(), coll.end(),  // range    
                  print);                    // operation    
        cout << endl;  
}  


作者 lwbeyond


喜欢0 评分0
游客

返回顶部