struct random_access_iterator_tag {};
属性 | 有效的表达式 |
---|---|
可以默认构造、拷贝构造、拷贝赋值和析构 | X a; |
可以使用相等/不等运算符进行等价比较 (当两个迭代器值指向相同的底层序列时才有意义)。 | a == b |
可以作为右值解引用(如果处于可解引用状态)。 | *a |
对于可变迭代器(非 const 迭代器) 可以作为左值解引用(如果处于可解引用状态)。 | *a = t |
可以递增(如果处于可解引用状态)。 结果是也可解引用或越界迭代器。 两个相等的迭代器,在都递增后仍然相等。 | ++a |
可以递减(如果存在可解引用的迭代器值在其前面)。 | --a a-- *a-- |
支持迭代器与整数值之间的算术运算符+ 和- ,或两个迭代器之间的减法。 | a + n |
可以与不等关系运算符(< 、> 、<= 和 >= )进行比较。 | a < b |
支持复合赋值运算+= 和 -= | a += n |
支持偏移解引用运算符([] ) | a[n] |
属性 | 有效的表达式 |
---|---|
可以默认构造、拷贝构造、拷贝赋值和析构 | X a; |
可以使用相等/不等运算符进行等价比较 (当两个迭代器值指向相同的底层序列时才有意义)。 | a == b |
可以作为右值解引用(如果处于可解引用状态)。 | *a |
对于可变迭代器(非 const 迭代器) 可以作为左值解引用(如果处于可解引用状态)。 | *a = t |
可以递增(如果处于可解引用状态)。 结果是也可解引用或越界迭代器。 两个相等的迭代器,在都递增后仍然相等。 | ++a |
可以递减(如果存在可解引用的迭代器值在其前面)。 | --a a-- *a-- |
支持迭代器与整数值之间的算术运算符+ 和- ,或两个迭代器之间的减法。 | a + n |
可以与不等关系运算符(< 、> 、<= 和 >= )进行比较。 | a < b |
支持复合赋值运算+= 和 -= | a += n |
支持偏移解引用运算符([] ) | a[n] |
左值是可交换的。 | swap(a,b) |
const T&
)。