C++ 迭代器库 - random_access_iterator_tag


描述

它用于标识迭代器的类别,随机访问迭代器至少支持以下操作之一。

C++98

财产 有效的表达式
它是可默认构造、可复制构造、可复制分配和可破坏的

X a;

X b(a);

b = a;

可以使用相等/不等运算符来比较其等价性

(当两个迭代器值迭代相同的基础序列时有意义)。

a == b

a != b

它可以作为右值取消引用(如果处于可取消引用状态)。

*a

a->m

对于可变迭代器非常量迭代器):

可以作为左值取消引用(如果处于可取消引用状态)。

*a = t

它可以递增(如果处于可取消引用状态)。

结果要么是可解引用的,要么是尾后迭代器。

两个比较相等的迭代器,在都增加后保持比较相等。

++a

a++

*a++

它可以递减(如果它前面有可解引用的迭代器值)。

- A

A -

*A -

支持迭代器和整数值之间的算术运算符+and ,或从另一个迭代器中减去一个迭代器。-

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

它可以作为右值取消引用(如果处于可取消引用状态)。

*a

a->m

对于可变迭代器非常量迭代器):

可以作为左值取消引用(如果处于可取消引用状态)。

*a = t

它可以递增(如果处于可取消引用状态)。

结果要么是可解引用的,要么是尾后迭代器。

两个比较相等的迭代器,在都增加后保持比较相等。

++a

a++

*a++

它可以递减(如果它前面有可解引用的迭代器值)。

- A

A -

*A -

它支持迭代器和整数值之间的算术运算符+and ,或者从另一个迭代器中减去一个迭代器。-

a + n

n + a

a - n

a - b

它可以与不等关系运算符(<><=>=)进行比较。

a < b

a > b

a <= b

a >= b

它支持复合赋值操作+=-=

a += n

a -= n

它支持偏移解引用运算符 ( []) a[n]
左值是可交换的 swap(a,b)

宣言

以下是 std::random_access_iterator_tag 的声明。

C++11

struct random_access_iterator_tag {};
迭代器.htm