input_iterator_tag
描述 (Description)
它用于将迭代器的类别标识为输入迭代器,并且所有输入迭代器至少支持以下一个操作。
C++98
属性 | 有效的表达 |
---|---|
它是一个可复制构造,可复制分配和可破坏的 | X b(a); b = a; |
可以使用相等/不等运算符比较它的等价性 (如果两个迭代器都in domain则有意义)。 | a == b a != b |
它可以被解除引用为rvalue (如果处于可dereferenceable state )。 | *a a-》m |
它可以递增(如果处于可dereferenceable state )。 结果既可以是可dereferenceable ,也可以是past-the-end迭代器。 在增加之后,前一个迭代器值不需要可dereferenceable 。 | ++a (void)a++ *a++ |
其value type不需要可分配 | t = u not required |
C++11
属性 | 有效的表达 |
---|---|
它是一个可复制构造,可复制分配和可破坏的 | X b(a); b = a; |
可以使用相等/不等运算符比较它的等价性 (如果两个迭代器都in domain则有意义)。 | a == b a != b |
它可以被解除引用为rvalue (如果处于可dereferenceable state )。 | *a a-》m |
它可以递增(如果处于可dereferenceable state )。 结果既可以是可dereferenceable ,也可以是past-the-end迭代器。 在增加之后,前一个迭代器值不需要可dereferenceable 。 | ++a (void)a++ *a++ |
其value type不需要可分配 | t = u not required |
左值是可以swappable 。 | swap(a,b) |
声明 (Declaration)
以下是std :: input_iterator_tag的声明。
C++11
struct input_iterator_tag {};