function template
<iterator>

std::relational operators (reverse_iterator)

(1)
template <class Iterator>  bool operator== (const reverse_iterator<Iterator>& lhs,                   const reverse_iterator<Iterator>& rhs);
(2)
template <class Iterator>  bool operator!= (const reverse_iterator<Iterator>& lhs,                   const reverse_iterator<Iterator>& rhs);
(3)
template <class Iterator>  bool operator<  (const reverse_iterator<Iterator>& lhs,                   const reverse_iterator<Iterator>& rhs);
(4)
template <class Iterator>  bool operator<= (const reverse_iterator<Iterator>& lhs,                   const reverse_iterator<Iterator>& rhs);
(5)
template <class Iterator>  bool operator>  (const reverse_iterator<Iterator>& lhs,                   const reverse_iterator<Iterator>& rhs);
(6)
template <class Iterator>  bool operator>= (const reverse_iterator<Iterator>& lhs,                   const reverse_iterator<Iterator>& rhs);
(1)
template <class Iterator1, class Iterator2>  bool operator== (const reverse_iterator<Iterator1>& lhs,                   const reverse_iterator<Iterator2>& rhs);
(2)
template <class Iterator1, class Iterator2>  bool operator!= (const reverse_iterator<Iterator1>& lhs,                   const reverse_iterator<Iterator2>& rhs);
(3)
template <class Iterator1, class Iterator2>  bool operator<  (const reverse_iterator<Iterator1>& lhs,                   const reverse_iterator<Iterator2>& rhs);
(4)
template <class Iterator1, class Iterator2>  bool operator<= (const reverse_iterator<Iterator1>& lhs,                   const reverse_iterator<Iterator2>& rhs);
(5)
template <class Iterator1, class Iterator2>  bool operator>  (const reverse_iterator<Iterator1>& lhs,                   const reverse_iterator<Iterator2>& rhs);
(6)
template <class Iterator1, class Iterator2>  bool operator>= (const reverse_iterator<Iterator1>& lhs,                   const reverse_iterator<Iterator2>& rhs);
Relational operators for reverse_iterator
Performs the appropriate comparison operation between the reverse_iterator objects lhs and rhs.

Internally, the function compares directly the base iterators using the reflexively equivalent relational operator

operator on
reverse iterators
equivalent used on
base iterators
====
!=!=
< >
<=>=
> <
>=<=

These operators are overloaded in header <iterator>.

参数

lhs, rhs
reverse_iterator objects (to the left- and right-hand side of the operator, respectively), having both the same template parameter (Iterator).
reverse_iterator objects (to the left- and right-hand side of the operator, respectively) for whose base iterators the proper comparison operation is defined.

返回值

如果条件成立,则为 true;否则为 false

示例

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;
                                                         // ? 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++;
  std::cout << '\n';

  return 0;
}

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


数据竞争

Both objects, lhs and rhs, are accessed.

异常安全

Provides the same level of guarantee as the operation applied to the base iterators of lhs and rhs.

另见