名前付き要件: LegacyRandomAccessIterator
LegacyRandomAccessIterator は定数時間で任意の要素を指す位置に移動できる LegacyBidirectionalIterator です。
配列要素へのポインタは LegacyRandomAccessIterator のすべての要件を満たします。
[編集] 要件
以下の内容を満たす場合、型 It
は LegacyRandomAccessIterator を満たします。
- 型
It
が LegacyBidirectionalIterator を満たす。
さらに、
- std::iterator_traits<It>::value_type によって表される型
value_type
- std::iterator_traits<It>::difference_type によって表される型
difference_type
- std::iterator_traits<It>::reference によって表される型
reference
-
It
またはconst It
型のオブジェクトi
,a
,b
-
It&
型の値r
-
difference_type
型の整数n
が与えられたとき、以下の式が有効でなければならず、指定された効果を持たなければなりません。
式 | 戻り値の型 | 操作的意味論 | 注釈 |
---|---|---|---|
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) |
上記のルールは LegacyRandomAccessIterator が LessThanComparable も実装することを暗に示します。
可変な LegacyRandomAccessIterator は LegacyOutputIterator の要件を追加でサポートする LegacyRandomAccessIterator です。
コンセプトstd::iterator_traits の定義のために、以下の説明専用コンセプトが定義されます。
説明専用コンセプト |
(C++20以上) |
[編集] 関連項目
BidirectionalIterator が定数時間の前進と添字アクセスをサポートするランダムアクセスイテレータであることを指定します (コンセプト) |