random_access_iterator_tag
描述 (Description)
它用于标识迭代器的类别,随机访问迭代器至少支持以下操作之一。
C++98
属性 | 有效的表达 |
---|---|
它是一个默认可构造,可复制构造,可复制分配和可破坏的 | X a; X b(a); b = a; |
可以使用相等/不等运算符比较它的等价性 (当两个迭代器值迭代相同的基础序列时有意义)。 | a == b a != b |
它可以被解除引用为rvalue (如果处于可dereferenceable state )。 | *a a-》m |
对于mutable iterators ( non-constant iterators ): 可以取消引用为lvalue (如果处于可dereferenceable state )。 | *a = t |
它可以递增(如果处于可dereferenceable state )。 结果既可以是可dereferenceable ,也可以是past-the-end迭代器。 比较相等的两个迭代器,在增加后保持比较相等。 | ++a a++ *a++ |
它可以递减(如果在它之前有一个可dereferenceable迭代器值)。 | --a a-- *a-- |
支持迭代器和整数值之间的算术运算符+和- ,或者从另一个迭代器中减去迭代器。 | a + n n + a a - n a - b |
可以与不等式关系运算符( < , > , <=和>= )进行比较。 | a 《 b a> b a <= b a 》= b |
支持复合赋值操作+=和-= | a += n a -= n |
支持偏移解引用运算符( [] ) | a[n] |
C++11
属性 | 有效的表达 |
---|---|
它是一个默认可构造,可复制构造,可复制分配和可破坏的 | X a; X b(a); b = a; |
可以使用相等/不等运算符比较它的等价性 (当两个迭代器值迭代相同的基础序列时有意义)。 | a == b a != b |
它可以被解除引用为rvalue (如果处于可dereferenceable state )。 | *a a-》m |
对于mutable iterators ( non-constant iterators ): 可以取消引用为lvalue (如果处于可dereferenceable state )。 | *a = t |
它可以递增(如果处于可dereferenceable state )。 结果既可以是可dereferenceable ,也可以是past-the-end迭代器。 比较相等的两个迭代器,在增加后保持比较相等。 | ++a a++ *a++ |
它可以递减(如果在它之前有一个可dereferenceable迭代器值)。 | --a a-- *a-- |
它支持迭代器和整数值之间的算术运算符+和- ,或者从另一个迭代器中减去迭代器。 | a + n n + a a - n a - b |
它可以与不等式关系运算符( < , > , <=和>= )进行比较。 | a 《 b a> b a <= b a 》= b |
它支持复合赋值操作+=和-= | a += n a -= n |
它支持偏移解引用运算符( [] ) | a[n] |
左值是可以swappable 。 | swap(a,b) |
声明 (Declaration)
以下是std :: random_access_iterator_tag的声明。
C++11
struct random_access_iterator_tag {};