| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
reverse_iterator::base | ||||
| Non-member functions | ||||
(C++20) | ||||
(C++20) | ||||
(C++14) |
iterator_type base()const; | (constexpr since C++17) | |
Returns the underlying iterator.
Contents |
The base iterator refers to the element that is next (from theiterator_type perspective) to the element thereverse_iterator is currently pointing to. That is&*(this->base()-1)==&*(*this).
#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>; constauto it= v.begin()+3; RevIt r_it{it}; std::cout<<"*it == "<<*it<<'\n'<<"*r_it == "<<*r_it<<'\n'<<"*r_it.base() == "<<*r_it.base()<<'\n'<<"*(r_it.base() - 1) == "<<*(r_it.base()-1)<<'\n'; 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'; for(auto it= r_begin; it!= r_end;++it)std::cout<<*it<<' ';std::cout<<'\n';}
Output:
*it == 3*r_it == 2*r_it.base() == 3*(r_it.base() - 1) == 20 1 2 3 4 55 4 3 2 1 0
| accesses the pointed-to element (public member function)[edit] |