C++ 具名要求:可逆容器 (ReversibleContainer)

来自cppreference.com
< cpp‎ | named req
 
 
C++ 具名要求
基础
类型属性
库所属
容器
容器元素
(C++11)

迭代器
流 I/O
格式化
(C++20)
随机数
(C++11)    
并发
(C++11)
(C++11)
范围
其他
(C++11)


 

可逆容器 (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
对常数 aconst_reverse_iterator
reverse_iterator(end()) 常数
a.rend() reverse_iterator
对常数 aconst_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() 常数


示例

下列示例在(拥有随机访问迭代器的)vector 上逆序迭代。

#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


标准库