public member function
<iterator>

std::reverse_iterator::operator-=

reverse_iterator& operator-= (difference_type n);
Retrocede iterator
Descreases the reverse_iterator by n element positions.

Internally, the function increases by n the base iterator kept by the object (as if applying operator+= to it).

Note that this function requires the base iterator to be a random-access iterator.

Parameters

n
Number of elements to offset.
Member type difference_type is an alias of the base iterator's own difference type.

Return value

The reverse iterator itself (*this).

Example

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 = myvector.rend();

  rev_iterator -= 4;

  std::cout << "rev_iterator now points to: " << *rev_iterator << '\n';

  return 0;
}

Output:

rev_iterator now points to: 3


Data races

Modifies the object.
The iterator returned can be used to access or modify pointed elements.

Exception safety

Provides the same level of guarantee as increasing the base iterator.

See also