函式模板
<iterator>

std::operator- (reverse_iterator)

template <class Iterator>  typename reverse_iterator<Iterator>::difference_type operator- (    const reverse_iterator<Iterator>& lhs,    const reverse_iterator<Iterator>& rhs);
template <class Iterator1, class Iterator2>  auto operator- (const reverse_iterator<Iterator>& lhs,                  const reverse_iterator<Iterator>& rhs)  -> decltype (rhs.base()-lhs.base()) { return rhs.base()-lhs.base(); }
減法運算子
返回 lhsrhs 之間的距離

該函式返回的結果與 rhsbase iterator 減去 lhsbase iterator 相同。

引數

lhs, rhs
reverse_iterator 物件(分別位於運算子的左側和右側),它們具有相同的模板引數(Iterator)。
具有相同模板引數(Iterator)的 reverse_iterator 物件(分別位於運算子的左側和右側),它們的base iterators 支援減法運算。

返回值

lhsrhs 之間的元素數量。

示例

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

  std::reverse_iterator<std::vector<int>::iterator> from,until;

  from = myvector.rbegin();
  until = myvector.rend();

  std::cout << "myvector has " << (until-from) << " elements.\n";

  return 0;
}

輸出

myvector has 10 elements.


資料競爭

訪問 lhsrhs 兩個物件。

異常安全

提供與 lhsrhsbase iterators 上的自反操作相同的保證級別。

另見