名前付き要件: ReversibleContainer
提供: cppreference.com
ReversibleContainer は LegacyBidirectionalIterator または LegacyRandomAccessIterator の要件を満たすイテレータを持つ Container です。 そのようなイテレータは ReversibleContainer は逆順に辿ることを可能とします。
目次 |
[編集] 要件
X
|
コンテナの型 |
T
|
要素の型 |
a
|
X 型のオブジェクト
|
[編集] 型
式 | 戻り値の型 | 条件 | 計算量 |
---|---|---|---|
X::reverse_iterator | 値型が T であるイテレータ型 |
reverse_iterator<iterator> | コンパイル時 |
X::const_reverse_iterator | 値型が T である定数イテレータ型 |
reverse_iterator<const_iterator> | コンパイル時 |
[編集] メンバ関数
式 | 戻り値の型 | 条件 | 計算量 |
---|---|---|---|
a.rbegin() | reverse_iterator 定数の a に対しては const_reverse_iterator |
reverse_iterator(end()) | 定数時間 |
a.rend() | reverse_iterator 定数の a に対しては const_reverse_iterator |
reverse_iterator(begin()) | 定数時間 |
a.crbegin() | const_reverse_iterator | const_cast<X const&>(a).rbegin() | 定数時間 |
a.crend() | const_reverse_iterator | const_cast<X const&>(a).rend() | 定数時間 |
[編集] 例
以下の例はベクタ (ランダムアクセスイテレータを持ちます) を逆順に反復します。
Run this code
#include <vector> #include <iostream> int main() { std::vector<int> v = {3, 1, 4, 1, 5, 9}; for(std::vector<int>::reverse_iterator i = v.rbegin(); i != v.rend(); ++i) { std::cout << *i << '\n'; } }
出力:
9 5 1 4 1 3