Namespaces
Variants

operator+(std::reverse_iterator)

De es.cppreference.net
 
 
Biblioteca de iteradores
Conceptos de iteradores
Primitivas de iteradores
Conceptos y utilidades de algoritmos
Conceptos invocables indirectos
Requisitos comunes de algoritmos
(C++20)
(C++20)
(C++20)
Utilidades
(C++20)
Adaptadores de iteradores
Acceso a rangos
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
Definido en el encabezado <iterator>
template< class Iter >
reverse_iterator<Iter> operator+
    ( typename reverse_iterator<Iter>::difference_type n,
      const reverse_iterator<Iter>& it );
(constexpr desde C++17)
(hasta C++23)
template< class Iter >
constexpr reverse_iterator<Iter> operator+
    ( std::iter_difference_t<Iter> n, const reverse_iterator<Iter>& it );
(desde C++23)

Devuelve el iterador it incrementado en n. De hecho, el iterador subyacente se decrementa en n.

Parámetros

n - el número de posiciones para incrementar el iterador
it - el adaptador de iterador a incrementar

Valor de retorno

reverse_iterator < Iter > ( it. base ( ) - n )

Ejemplo

#include <iostream>
#include <iterator>
#include <list>
#include <vector>
int main()
{
    {
        std::vector v{0, 1, 2, 3};
        std::reverse_iterator<std::vector<int>::iterator>
            ri1{std::reverse_iterator{v.rbegin()}};
        std::cout << *ri1 << ' '; // 3
        std::reverse_iterator<std::vector<int>::iterator> ri2{2 + ri1};
        std::cout << *ri2 << ' '; // 1
    }
    {
        std::list l{5, 6, 7, 8};
        std::reverse_iterator<std::list<int>::iterator>
            ri1{std::reverse_iterator{l.rbegin()}};
        std::cout << *ri1 << '\n'; // 8
    //  auto ri2{2 + ri1}; // Error: el iterador subyacente no
                           //        implementa random access iterator
    }
}

Salida:

3 1 8

Véase también

avanza o decrementa el reverse_iterator
(función miembro pública)
calcula la distancia entre dos adaptadores de iterador
(plantilla de función)