名前付き要件: ReversibleContainer - cppreference.com
提供: 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() |
定数時間 |
例
以下の例はベクタ (ランダムアクセスイテレータを持ちます) を逆順に反復します。
#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'; } }
出力:
標準ライブラリ
- std::array
- std::deque
- std::list
- std::vector
- std::map
- std::multimap
- std::set
- std::multiset