C++ 迭代器类型
来源:互联网 发布:linux安装tar.xz文件 编辑:程序博客网 时间:2024/06/14 01:47
C++ STL包括:
容器、算法、迭代器、函数对象
迭代器:用于遍历容器,独立于数据类型和容器类型
迭代器的类型:
1输入迭代器
‘输入’是从程序的角度来说,既输入来自容器,输入迭代器被程序用来读取容器的信息
具体说:对输入迭代器解除引用可以使程序能够读取容器的值,但不一定能修改,因此,需要输入迭代器的算法将不会修改容器中的值
通过++操作符(前缀格式和后缀格式)访问容器中所有的值
但不能保证,输入迭代器第二次遍历容器时,顺序不变,另外,输入迭代器被递增后,不能保证其先前的值仍然可以被解除引用
基于输入迭代器的任何算法都应当是单通行的,不依赖前一次遍历时的迭代器的值,也不依赖本次遍历中前面的迭代器的值
输入迭代器是单向迭代器,只能递增,不能倒退
2输出迭代器
‘输出’是将信息从程序传输给容器的迭代器,输出迭代器只是解除引用让程序能修改容器的值,而不能读取(cout可以修改送到显示器的字符流
但不能读取屏幕上的内容)。
简言之:对于单通行、只读算法,可以使用输入迭代器;对于单通行、只写算法,可以使用输出迭代器
3正向迭代器
与输入迭代器和输出迭代器相似,正向迭代器只使用++操作符来遍历容器,每次沿容器向前移动一个元素
但是,与输入和输出迭代器不同的是,它总是按相同的顺序遍历一系列的值
另外,将正向迭代器递增后,仍然可以对前面的迭代器值解除引用,并可以得到相同的值
正向迭代器既可以使得能够读取和修改数据,也可以使得只能读取数据
int *pirw;
const int * pir;
4双向迭代器
可以双向遍历容器,支持递减操作符
5随机访问迭代器
具有双向迭代器的所有特性,同时添加了支持随机访问的操作
- <C/C++> 类型转换
- C/C++:类型转换
- char类型和string类型(C++,C#)
- char类型和string类型(C++,C#)
- C/C+= 符号类型
- objective-c C类型数组
- 【C/C++】枚举类型举例
- c高级c存储类型
- 【C/C++】什么是类型安全
- [C#]强类型
- 异常类型 描述(C#)
- C#_值类型
- C类型介绍
- C类型转换
- C语言变量类型
- C#.NET 类型转换
- c#.net 类型转化
- 类型转换(C#)
- 【Android UI设计与开发】第18期:滑动菜单栏(三)SlidingMenu动画效果的实现
- openssl RSA命令使用
- poj 3311 Hie with the Pie
- Linux设备驱动开发详解-Note(9)--- Linux 文件系统与设备文件系统(1)
- KVM地址翻译流程及EPT页表的建立过程
- C++ 迭代器类型
- 使用scp在windows和Linux之间互传文件
- UNIX 高手的 10 个习惯
- hdu3033(分组背包二次dp处理)
- weblogic10.3 java.lang.OutOfMemoryError: PermGen space
- tcp 连接详细关闭过程
- VS2010中各种文件的说明
- 启动文件选取的按钮
- 【TFS】TFS中定义自己的工作项(WorkItems)模板