函数模板
<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 上的自反操作相同的保证级别。

另见