名前付き要件: LegacyRandomAccessIterator
提供: cppreference.com
LegacyRandomAccessIterator は定数時間で任意の要素を指す位置に移動できる LegacyBidirectionalIterator です。
配列要素へのポインタは LegacyRandomAccessIterator のすべての要件を満たします。
要件
以下の内容を満たす場合、型 It は LegacyRandomAccessIterator を満たします。
- 型
Itが LegacyBidirectionalIterator を満たす。
さらに、
std::iterator_traits<It>::value_typeによって表される型value_typestd::iterator_traits<It>::difference_typeによって表される型difference_typestd::iterator_traits<It>::referenceによって表される型referenceItまたはconst It型のオブジェクトi,a,bIt&型の値rdifference_type型の整数n
が与えられたとき、以下の式が有効でなければならず、指定された効果を持たなければなりません。
| 式 | 戻り値の型 | 操作的意味論 | 注釈 |
|---|---|---|---|
r += n
|
It&
|
difference_type m = n; if (m >= 0) while (m--) ++r; else while (m++) --r; return r;
|
|
a + n
|
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 の定義のために、以下の説明専用コンセプトが定義されます。 <tbody> </tbody>
説明専用コンセプト |
(C++20以上) |
関連項目
BidirectionalIterator が定数時間の前進と添字アクセスをサポートするランダムアクセスイテレータであることを指定します (コンセプト) |