public member function
<iterator>

std::reverse_iterator::operator++

(1)
reverse_iterator& operator++();
(2)
reverse_iterator  operator++(int);
前进迭代器位置
reverse_iterator 前进一个位置。

在内部,前缀递增版本(1)会递减对象所持有的base iterator(如同对其应用operator--)。

后缀递增版本(2)的实现等价于
1
2
3
4
5
reverse_iterator operator++(int) {
  reverse_iterator temp = *this;
  ++(*this);
  return temp;
}

参数

无(第二个版本重载了后缀递增运算符)。

返回值

前缀递增版本(1)返回*this
后缀递增版本(2)返回调用前*this的值。

示例

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
27
28
// 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;
                                                         // ? 9 8 7 6 5 4 3 2 1 0 ?
  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;
    ++rev_from;
  }
  std::cout << '\n';

  return 0;
}

输出

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


数据竞争

修改对象。
返回的迭代器可用于访问或修改指向的元素。

异常安全

提供与递减(以及(2)的复制)base iterator相同的保证级别。

另见