公有成员函数
<iterator>

std::reverse_iterator::reverse_iterator

默认 (1)
reverse_iterator();
初始化 (2)
explicit reverse_iterator (iterator_type it);
复制 (3)
template <class Iter>  reverse_iterator (const reverse_iterator<Iter>& rev_it);
构造 reverse_iterator 对象
构造一个反向迭代器对象

(1) 默认构造函数
构造一个指向空对象的反向迭代器。
内部的基迭代器是值初始化的。
(2) 初始化构造函数
从某个原始迭代器 it 构造一个反向迭代器。构造对象的行为复制原始对象,但它以相反的顺序迭代其指向的元素。
(3) 复制/类型转换构造函数
从另一个反向迭代器构造一个反向迭代器。构造的对象保持与 rev_it 相同的迭代方向。

参数

it
一个迭代器,其迭代方向在构造的对象中被反转。
成员类型 iterator_type 是底层双向迭代器类型(类模板参数:Iterator)。
rev_it
一个 reverse_iterator 类型的迭代器,其迭代方向被保留。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// reverse_iterator example
#include <iostream>     // std::cout
#include <iterator>     // std::reverse_iterator
#include <vector>       // std::vector

int main () {
  std::vector<int> myvector;
  for (int i=0; i<10; i++) myvector.push_back(i);

  typedef std::vector<int>::iterator iter_type;
                                                         // ? 0 1 2 3 4 5 6 7 8 9 ?
  iter_type from (myvector.begin());                     //   ^
                                                         //         ------>
  iter_type until (myvector.end());                      //                       ^
                                                         //
  std::reverse_iterator<iter_type> rev_until (from);     // ^
                                                         //         <------
  std::reverse_iterator<iter_type> rev_from (until);     //                     ^

  std::cout << "myvector:";
  while (rev_from != rev_until)
    std::cout << ' ' << *rev_from++;
  std::cout << '\n';

  return 0;
}

输出

myvector: 9 8 7 6 5 4 3 2 1 0


异常安全

提供与基迭代器的相应构造函数相同的保证级别。

另见