16.4.2 迭代器类型
作者:互联网
STL定义了五种迭代器:
- 输入迭代器 InputIterator
- 解除引用用于程序向容器读取内容,一般不允许修改值
- 支持++运算符(前缀和后缀)
- 输入迭代器是单向迭代器,可以递增,但不能倒退
- 输出迭代器 OutputIterator
- 解除引用让程序修改容器值,但不能读取
- 其余部分与输入迭代器相似(单通行、递增等)
- 正向迭代器 ...
- 单通行、递增(使用++)
- 既可以读取和修改(*),也可以只读(const *)
- 双向迭代器 ...
- 双向迭代器具有正向迭代器的所有特性
- 支持两种(前缀和后缀)递减运算符
- 随机访问迭代器 RandomAccessIterator
- 支持双向迭代器的所有特性
- 支持随机访问的操作(如指针增加运算)
- 支持用于对元素进行排序的关系运算符
并根据所需的迭代器类型对算法进行了描述:
template<class InputIterator, class T> InputIterator find(InputIterator first, InputIterator last, const T & value);
template<class RandomAccessIterator> void sort(RandomAccessIterator first, RandomAccessIterator last);
对于这五种迭代器,都可以执行解除引用操作(*),也可进行比较(==、!=)
标签:读取,迭代,递增,运算符,RandomAccessIterator,16.4,InputIterator,类型 来源: https://www.cnblogs.com/suui90/p/13546155.html