Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::revers...erator::base(3) C++ Standard Libarystd::revers...erator::base(3)

NAME
       std::reverse_iterator::base - std::reverse_iterator::base

Synopsis
	  iterator_type	base() const;		 (until	C++17)
	  constexpr iterator_type base() const;	 (since	C++17)

	  Returns  the	underlying  base iterator. That	is std::reverse_itera-
       tor(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
	  May throw implementation-defined exceptions.

Example
       // Run this code

	#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>;

	    const auto 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) == 2
	0 1 2 3	4 5
	5 4 3 2	1 0

See also
	  operator*  accesses the pointed-to element
	  operator-> (public member function)

http://cppreference.com		  2022.07.31	 std::revers...erator::base(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::reverse_iterator::base&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help