公有成員函式
<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


異常安全

提供與基迭代器的相應建構函式相同的保證級別。

另見