C++ 命名要求: ReversibleContainer
一个 ReversibleContainer 是一个 Container,其迭代器满足 LegacyBidirectionalIterator 或 LegacyRandomAccessIterator 的要求。这类迭代器允许 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() | 常量 |
标准库
示例
以下示例展示了如何反向迭代一个 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 << ' ';
}
}
结果
9 5 1 4 1 3