目录

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 iteratorsnon-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 iteratorsnon-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 {};
↑回到顶部↑
WIKI教程 @2018