C++ Iterator 库 - forward_iterator_tag
描述
它是一个迭代器,可用于在从开始到结束的方向访问范围内的元素序列。
C++98
属性 | 有效的表达方式 |
---|---|
它是可默认构造、可复制构造、可复制分配和可破坏的 | X a; X b(a); b = a; |
可以使用等式/不等式运算符来比较它的等价性 (当两个迭代器值迭代相同的底层序列时有意义)。 |
a == b a != b |
它可以作为 rvalue 被取消引用(如果处于 可取消引用状态)。 | *a a->m |
对于可变迭代器(非常量迭代器): 可以作为 lvalue 解引用(如果处于 可解引用状态)。 |
*a = t |
它可以递增(如果处于可取消引用状态)。 结果也是 dereferenceable 或 past-the-end 迭代器。 两个比较相等的迭代器,当两者都增加时继续比较相等。 |
++a a++ *a++ |
C++11
属性 | 有效的表达方式 |
---|---|
它是一个默认可构造、可复制构造、可复制可分配和可破坏的 | X a; X b(a); b = a; |
可以使用等式/不等式运算符来比较它的等价性 (当两个迭代器值迭代相同的底层序列时有意义)。 |
a == b a != b |
它可以作为 rvalue 被取消引用(如果处于 可取消引用状态)。 | *a a->m |
对于可变迭代器(非常量迭代器): 可以作为 lvalue 解引用(如果处于 可解引用状态)。 |
*a = t |
它可以递增(如果处于可取消引用状态)。 结果也是 dereferenceable 或 past-the-end 迭代器。 两个比较相等的迭代器,当两者都增加时继续比较相等。 |
++a a++ *a++ |
Lvalues are swappable. | swap(a,b) |
声明
以下是 std::forward_iterator_tag 的声明。
C++11
struct forward_iterator_tag {};