名前空間
変種
操作

名前付き要件: ReversibleContainer

提供: cppreference.com
< cpp‎ | named req
 
 
名前付き要件
基本
型の性質
ライブラリ全体
コンテナ
ReversibleContainer
コンテナの要素
イテレータ
ストリーム入出力
乱数
並行処理
(C++11)

(C++11)
(C++11)
その他
 

ReversibleContainerLegacyBidirectionalIterator または 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';
    }
}

出力:

9
5
1
4
1
3


[編集] 標準ライブラリ