◐ Shell
clean mode source ↗

std::make_reverse_iterator - cppreference.com

De cppreference.com

Definido en el archivo de encabezado <iterator>

template< class Iter > std::reverse_iterator<Iter> make_reverse_iterator( Iter i );

(desde C++14)
(constexpr desde C++17)

make_reverse_iterator es una plantilla de función de conveniencia que construye un std::reverse_iterator para el iterador dado i (que debe ser un BidirectionalIterator) con el tipo deducido del tipo del argumento.

Parámetros

i - El iterador que se convertirá en iterador inverso.

Valor de retorno

Un std::reverse_iterator construido a partir de i.

Notas

Macro de Prueba de característica Valor Estándar Comentario
__cpp_lib_make_reverse_iterator 201402L (C++14) std::make_reverse_iterator

Posible implementación

template<class Iter>
constexpr std::reverse_iterator<Iter> make_reverse_iterator(Iter i)
{
    return std::reverse_iterator<Iter>(i);
}

Ejemplo

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

int main()
{
    std::vector<int> v{1, 3, 10, 8, 22};
    
    std::sort(v.begin(), v.end());
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, ", "));
    std::cout << '\n';
    
    std::copy(std::make_reverse_iterator(v.end()),
              std::make_reverse_iterator(v.begin()),
              std::ostream_iterator<int>(std::cout, ", "));
    std::cout << '\n';
}

Salida:

1, 3, 8, 10, 22,
22, 10, 8, 3, 1,

Véase también

Adaptador de iterador para recorrido en orden inverso.
(plantilla de clase) [editar]
Devuelve un iterador inverso al contenedor o array
(plantilla de función) [editar]
Devuelve un iterador inverso al final para un contenedor o array
(plantilla de función) [editar]