设计模式C++描述----20.迭代器(Iterator)模式
2024-10-06 12:30:51
一. 举例说明
我们知道,在 STL 里提供 Iterator 来遍历 Vector 或者 List 数据结构。
Iterator 模式也正是用来解决对一个聚合对象的遍历问题,将对聚合的遍历封装到一个类中进行,这样就避免暴露这个聚合对象的内部表示的可能。
例如在 STL 里有如相下结构:
二. 迭代器模式
定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
比较经典的例子是 STL 里的 for_each 操作:
- // 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;
- }
最新文章
- linux下libevent安装
- discuz核心函数库function_core的函数注释
- mysql 优化analyze table
- git 备份和恢复
- X86(32位)与X64(64位)有什么区别,如何选择对应的操作系统和应用程序?
- MapReduce流程、如何统计任务数目以及Partitioner
- javascript操作json总结
- Swift - 做一个简单的无线U盘(手机端Http服务器搭建)
- 计算机存储负数以及int转byte时-128的出现
- android中的五大布局(控件的容器,可以放button等控件)
- solr的域
- fastadmin模态框(弹出框)
- HTTP请求协议
- SELinux入门简介
- Maven学习笔记1(clean compile package install)
- SAP 销售条件表增强栏位
- dfs序理解-hdu3887
- hdu 1.2.5
- PyTorch保存模型与加载模型+Finetune预训练模型使用
- 转载:C/C++关于string.h头文件和string类
热门文章
- mysql创建数据库指定字符集和校对规则
- Ubuntu使用vi命令时,不能正常编辑文件,使用方向键时老是出现很多字母解决方案
- RocketMQ初入门踩坑记
- php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期
- uC/OS-III 任务详解(四)
- vultr恢复快照后更改密码(CentOs7)
- springcloud --- spring cloud sleuth和zipkin日志管理(spring boot 2.18)
- [LeetCode] 1137. N-th Tribonacci Number
- Linux下格式化恢复USB启动优盘
- java中的char