简介
它是一个类似指针的对象,可以用++递增,用*取消引用,并与另一个迭代器进行比较!=
类别
category | properties | 有效表达式 | |||
---|---|---|---|---|---|
所有类别 | copy-constructible , copy-assignable和 destructible |
b = a; | |||
It可递增 |
a ++ | ||||
随机访问 | 双向 | Forward | 输入 | 它支持相等/不等式比较 |
a!= b |
它可以被解除引用为 rvalue | * a a-> m | ||||
输出 | 它可以被解除引用为左值 (仅for 可变迭代器类型) | * a = t * a ++ = t | |||
default-constructible | X a; X() | ||||
多次传递:解除引用或递增都不会影响解除引用性 | {b = a; * a ++; * b;} | ||||
可以减少 | - a a - * a - | ||||
它支持算术运算符 + 和 - | a + n n + a a - n a - b | ||||
它支持不平等risons(< ,> ,< = 和 | a< b a> b a< = b a> = b | ||||
它支持复合赋值操作 + = 和 - = | a + = n a - = n | ||||
它支持偏移解除引用运算符( [] ) | a [n] |
函数
Sr.No. | 功能&说明 |
---|---|
1 | advance 它将迭代器推进n个元素位置. |
2 | distance 它返回迭代器之间的距离. |
3 | begin 它用于开始迭代器. |
4 | end 它用于结束迭代器. |
5 | prev 它用于获取迭代器前一个元素. |
6 | next 它用于获取下一个元素的迭代器. |
迭代器生成器
Sr.No. | Iterator generator&说明 |
---|---|
1 | back_inserter 它构造了后插入迭代器. |
2 | front_inserter 它构造前插入迭代器. |
2 | inserter 它构造插入迭代器 |
3 | make_move_iterator 它构造移动迭代器. |
Classes
Sr.No. | Classes&说明 |
---|---|
1 | iterator 迭代器基类。 |
2 | iterator_traits 它是一个迭代器特征. |
预定义迭代器
Sr.No. | 预定义的迭代器&说明 |
---|---|
1 | reverse_iterator 它是一个反向迭代器. |
2 | move_iterator 它是一个移动迭代器. |
3 | back_insert_iterator 它是一个后插入迭代器. |
4 | front_insert_iterator 它是一个前插入迭代器. |
5 | insert_iterator 它用于插入迭代器. |
6 | istream_iterator 它是一个输入流迭代器. |
7 | ostream_iterator 它是一个输出流迭代器. |
8 | istreambuf_iterator 它是一个输入流缓冲区迭代器. |
7 | ostreambuf_iterator 它是一个输出流缓冲区迭代器. |
类别标签
Sr .No. | 类别标签&说明 |
---|---|
1 | input_iterator_tag 输入迭代器类别. |
2 | output_iterator_tag 输出迭代器类别. |
3 | forward_iterator_tag 转发迭代器类别. |
4 | bidirectional_iterator_tag 双向迭代器类别. |
5 | random_access_iterator_tag 随机访问迭代器类别. |