C++ 概念: RandomAccessIterator
来自cppreference.com
随机访问迭代器 (RandomAccessIterator
) 是能在常数时间内移动到指向任何元素的双向迭代器 (BidirectionalIterator
) 。
指向数组元素的指针满足所有随机访问迭代器 (RandomAccessIterator
) 的要求。
[编辑] 要求
类型 It
满足随机访问迭代器 (RandomAccessIterator
) ,若
- 类型
It
满足双向迭代器 (BidirectionalIterator
)
且给定
-
value_type
, std::iterator_traits<It>::value_type 所指代的类型 -
difference_type
, std::iterator_traits<It>::difference_type 所指代的类型 -
reference
, std::iterator_traits<It>::reference 所指代的类型 -
i
、a
、b
,It
或const It
类型的对象 -
r
,It&
类型的值 -
n
,difference_type
类型的整数
则下列表达式必须合法且拥有其指定的效应
表达式 | 返回类型 | 操作语义 | 注意 |
---|---|---|---|
r += n | It& | difference_type m = n; if (m >= 0) while (m--) ++r; |
|
a + n
n + a |
It | It temp = a; return temp += n; |
|
r -= n | It& | return r += -n; | n 的绝对值必须在 difference_type 的可表示值范围内。
|
i - n | It | It temp = i; return temp -= n; |
|
b - a | difference_type |
return n; |
前提条件:
后置条件:
|
i[n] | 可转换到 reference |
*(i + n) | |
a < b | 可语境转换到 bool | b - a > 0 | 严格全序关系:
|
a > b | 可按语境转换到 bool | b < a | 与 a < b 相反的全序关系 |
a >= b | 可按语境转换到 bool | !(a < b) | |
a <= b | 可按语境转换到 bool | !(a > b) |
上述规则隐含了随机访问迭代器 (RandomAccessIterator
) 亦实现可比较小于 (LessThanComparable
) 。
可变随机访问迭代器 (RandomAccessIterator
) 是满足输出迭代器 (OutputIterator
) 要求的随机访问迭代器 (RandomAccessIterator
) 。
[编辑] 参阅
指定双向迭代器 (BidirectionalIterator ) 为随机访问迭代器,支持常数时间前进和下标访问 (概念) |