stl迭代器的种类
来源:互联网 发布:哥伦比亚假货专卖淘宝 编辑:程序博客网 时间:2024/04/29 19:49
http://blog.csdn.net/touzani/archive/2007/06/08/1643859.aspx
根据迭代器所支持的操作不同,在STL中定义了如下5种迭代器:
l 输入迭代器(input iterator)——用于读取容器中的信息,但不一定能够修改它。
n 输入迭代器iter通过解除引用(即*iter),来读取容器中其所指向元素之值;
n 为了使输入迭代器能够访问容器中的所有元素的值,必须使其支持(前/后缀格式的)++ 操作符;
n 输入迭代器不能保证第二次遍历容器时,顺序不变;也不能保证其递增后,先前指向的值不变。即,基于输入迭代器的任何算法,都应该是单通(single-pass)的,不依赖于前一次遍历时的值,也不依赖于本次遍历中前面的值。
可见输入迭代器是一种单向的只读迭代器,可以递增但是不能递减,而且只能读不能写。适用于单通只读型算法。
l 输出迭代器(output iterator)——用于将信息传输给容器(修改容器中元素的值),但是不能读取。例如,显示器就是只能写不能读的设备,可用输出容器来表示它。也支持解除引用和++操作,也是单通的。所以,输出迭代器适用于单通只写型算法。
l 前向迭代器(forward iterator正向迭代器)——只能使用++操作符来单向遍历容器(不能用--)。与I/O迭代器一样,前向迭代器也支持解除引用与++操作。与I/O迭代器不同的是,前向迭代器是多通的(multi-pass)。即,它总是以同样的顺序来遍历容器,而且迭代器递增后,仍然可以通过解除保存的迭代器引用,来获得同样的值。另外,前向迭代器既可以是读写型的,也可以是只读的。
l 双向迭代器(bidirectional iterator)——可以用++和--操作符来双向遍历容器。其他与前向迭代器一样,也支持解除引用、也是多通的、也是可读写或只读的。
l 随机访问迭代器(random access iterator)——可直接访问容器中的任意一个元素的双向迭代器。
- stl迭代器的种类
- STL迭代器之迭代器的种类
- STL迭代器的种类和简介
- STL迭代器种类
- C++中STL迭代器的种类和简介
- C++中STL迭代器的种类和简介
- C++中STL迭代器的种类和简介
- C++中STL迭代器的种类和简介http://blog.csdn.net/woshifeixingzhuiyue/article/details/7376308
- 数据结构实验之查找三:树的种类统计 (STL)
- 关于 种类并查集题 强行打 STL 的询问
- C++五种类型的迭代器
- 模式的种类
- Linux的种类
- K 线的种类
- 数据库备份的种类
- 数据库备份的种类
- 中间件的产品种类
- enqueue的种类
- Flash中文输入问题整理
- handle_level_irq 与handle_edge_irq 的区别
- 常用快捷键用法
- 基于postgres的应用软件的拼音搜索实现
- GUI框架
- stl迭代器的种类
- Widget中使用ImageView显示图片的问题
- subString用法
- references
- PHP学习笔记(七)PHP+MYSQL分页原理
- PHP学习笔记(七)PHP+MYSQL分页原理
- Control的Invoke和BeginInvoke
- DELPHI中操作ACCESS技巧集
- struts简单例子的分析(含代码注释和配置文件说明)