名前付き要件: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 が定数時間の前進と添字アクセスをサポートするランダムアクセスイテレータであることを指定します (コンセプト) |