公共成員函式
<iterator>

std::reverse_iterator::operator-

reverse_iterator operator- (difference_type n) const;
減法運算子
返回一個*反向迭代器*,該迭代器指向當前迭代器所指向元素之前*n*個位置的元素。

內部,該函式在*基迭代器*上應用二元*operator+*,並返回一個用結果迭代器值構造的*反向迭代器*。

請注意,此函式要求*基迭代器*是*隨機訪問迭代器*。

此運算子也過載為非成員函式,用於返回迭代器相減的差值:參見*operator-).

引數

n
偏移的元素數量。
difference_type 是一個成員型別,定義為基迭代器自身差分型別的別名(通常是整型)。

返回值

指向當前指向元素之前*n*個位置的元素的迭代器。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// reverse_iterator::operator- 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);	// myvector: 0 1 2 3 4 5 6 7 8 9

  typedef std::vector<int>::iterator iter_type;

  std::reverse_iterator<iter_type> rev_iterator;

  rev_iterator = myvector.rend() - 3;

  std::cout << "myvector.rend()-3 points to: " << *rev_iterator << '\n';

  return 0;
}

輸出

myvector.rend()-3 points to: 2


資料競爭

該物件被訪問。
返回的迭代器可用於訪問或修改元素。

異常安全

提供與應用於*基迭代器*的操作相同的保證級別。

另見