概念
迭代器是一种检查容器内元素并遍历元素的数据类型,通常用于对C++中各种容器内元素的访问,但不同的容器有不同的迭代器,可以将迭代器理解为指针。
迭代器类型
- 输入迭代器 (input iterator)
- 输出迭代器 (output iterator)
- 前向迭代器 (forward iterator)
- 双向迭代器 (bidirectional iterator)
- 随机访问迭代器( random-access iterator)
迭代器通用功能
- 比较两个迭代器是否相等(==、!=)。
- 前置和后置递增运算(++)。
- 读取元素的解引用运算符(*)。只能读元素,也就是解引用只能出现在赋值运算符的右边。
- 箭头运算符(->),解引用迭代器,并提取对象的成员。
迭代器介绍
- 输入迭代器
通用的四种功能
只能利用迭代器进行输入功能
它只能用于单遍扫描算法 - 输出迭代器
通用的四种功能
只能利用迭代器进行输入功能
只能用于单遍扫描算法 - 前向迭代器
通用的四种功能
能利用迭代器进行输入和输出功能
能用于多遍扫描算法 - 双向迭代器
通用的四种功能
能利用迭代器进行输入和输出功能
能用于多遍扫描算法
前置和后置递减运算(- -),这意味这它能够双向访问 - 随机访问迭代器
通用的四种功能
能利用迭代器进行输入和输出功能
前置和后置递减运算(- -)(意味着它是双向移动的)
比较两个迭代器相对位置的关系运算符(<、<=、>、>=)
支持和一个整数值的加减运算(+、+=、-、-=)
两个迭代器上的减法运算符(-),得到两个迭代器的距离
支持下标运算符(iter[n]),访问距离起始迭代器n个距离的迭代器指向的元素能用于多遍扫描算法。 在支持双向移动的基础上,支持前后位置的比较、随机存取、直接移动n个距离