C++ Library - <iterator>
介绍 (Introduction)
它是一个类似指针的对象,可以用++递增,用*取消引用,并与另一个迭代器进行比较!=
类别Categories
类别 | 性能 | 有效的表达 | |||
---|---|---|---|---|---|
所有类别 | copy-constructible ,可copy-assignable and destructible | X b(a); b = a; | |||
它可以递增 | ++a a++ | ||||
随机访问 | Bidirectional | Forward | Input | 它支持平等/不平等比较 | a == b a != b |
它可以被解除引用为rvalue | *a a-》m | ||||
Output | 它可以被解除引用为lvalue (仅适用于mutable iterator types ) | * a = t * a ++ = t | |||
default-constructible | X a; X() | ||||
多次传递:解除引用或递增都不会影响解除引用性 | { b = a; *a++; *b; } | ||||
它可以减少 | --a a-- *a-- | ||||
它支持算术运算符+和- | a + n n + a a - n a - b | ||||
它支持迭代器之间的不等式比较( < , > , <=和> = ) | 一个“b a> b a <= b a“= b | ||||
它支持复合赋值操作+ =和- = | a + = n a - = n | ||||
它支持偏移解引用运算符( [] ) | a[n] |
功能 (Functions)
Sr.No. | 功能和描述 |
---|---|
1 | advance 它通过n个元素位置推进迭代器。 |
2 | distance 它返回迭代器之间的距离。 |
3 | begin 它用于启动迭代器。 |
4 | end 它用于结束迭代器。 |
5 | prev 它用于获取前一个元素的迭代器。 |
6 | next 它用于获取下一个元素的迭代器。 |
迭代器发生器
Sr.No. | 迭代器生成器和描述 |
---|---|
1 | back_inserter 它构造了后插入迭代器。 |
2 | inserter 它构造插入迭代器 |
3 | make_move_iterator 它构造了移动迭代器。 |
Classes
Sr.No. | 课程和描述 |
---|---|
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 随机访问迭代器类别。 |