跳到主要内容

C++ 命名要求: ReversibleContainer

一个 ReversibleContainer 是一个 Container,其迭代器满足 LegacyBidirectionalIteratorLegacyRandomAccessIterator 的要求。这类迭代器允许 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_iteratorreverse_iterator(end())常量
a.rend()reverse_iterator;对于常量 aconst_reverse_iteratorreverse_iterator(begin())常量
a.crbegin()const_reverse_iteratorconst_cast<X const&>(a).rbegin()常量
a.crend()const_reverse_iteratorconst_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

C++ 命名要求: ReversibleContainer

一个 ReversibleContainer 是一个 Container,其迭代器满足 LegacyBidirectionalIteratorLegacyRandomAccessIterator 的要求。这类迭代器允许 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_iteratorreverse_iterator(end())常量
a.rend()reverse_iterator;对于常量 aconst_reverse_iteratorreverse_iterator(begin())常量
a.crbegin()const_reverse_iteratorconst_cast<X const&>(a).rbegin()常量
a.crend()const_reverse_iteratorconst_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