名前付き要件: 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
標準ライブラリ
- std::array
- std::deque
- std::list
- std::vector
- std::map
- std::multimap
- std::set
- std::multiset