std::reverse_iterator::base

Iterator base() const;

Returns the underlying base iterator. That is std::reverse_iterator(it).base() == it.

The base iterator refers to the element that is next (from the std::reverse_iterator::iterator_type perspective) to the element the reverse_iterator is currently pointing to. That is &*(rit.base() - 1) == &*rit.

Parameters

(none).

Return value

The underlying iterator.

Exceptions

(none).

Example

#include <iostream>
#include <iterator>
#include <vector>
 
int main()
{
    std::vector<int> v = { 0, 1, 2, 3, 4, 5 };
 
    using RevIt = std::reverse_iterator<std::vector<int>::iterator>;
    RevIt r_end(v.begin());
    RevIt r_begin(v.end());
 
    for (auto it = r_end.base(); it != r_begin.base(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << "\n";
}

Output:

0 1 2 3 4 5

See also

operator*operator->
accesses the pointed-to element
(public member function)
doc_CPP
2016-10-11 10:06:17
Comments
Leave a Comment

Please login to continue.