Namespaces
Variants

std:: rend, std:: crend

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
rend crend
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
Definido en el encabezado <array>
Definido en el encabezado <deque>
Definido en el encabezado <flat_map>
Definido en el encabezado <flat_set>
Definido en el encabezado <forward_list>
Definido en el encabezado <inplace_vector>
Definido en el encabezado <iterator>
Definido en el encabezado <list>
Definido en el encabezado <map>
Definido en el encabezado <regex>
Definido en el encabezado <set>
Definido en el encabezado <span>
Definido en el encabezado <string>
Definido en el encabezado <string_view>
Definido en el encabezado <unordered_map>
Definido en el encabezado <unordered_set>
Definido en el encabezado <vector>
template < class C >
auto rend ( C & c ) - > decltype ( c. rend ( ) ) ;
(1) (desde C++14)
(constexpr desde C++17)
template < class C >
auto rend ( const C & c ) - > decltype ( c. rend ( ) ) ;
(2) (desde C++14)
(constexpr desde C++17)
template < class T, std:: size_t N >
std:: reverse_iterator < T * > rend ( T ( & array ) [ N ] ) ;
(3) (desde C++14)
(constexpr desde C++17)
template < class T >
std:: reverse_iterator < const T * > rend ( std:: initializer_list < T > il ) ;
(4) (desde C++14)
(constexpr desde C++17)
template < class C >
auto crend ( const C & c ) - > decltype ( std :: rend ( c ) ) ;
(5) (desde C++14)
(constexpr desde C++17)

Devuelve un iterador al final inverso del rango dado.

1,2) Devuelve c. rend ( ) , que típicamente es un iterador una posición después del final inverso de la secuencia representada por c .
1) Si C es un Container estándar, devuelve un objeto C::reverse_iterator .
2) Si C es un Container estándar, devuelve un objeto C::const_reverse_iterator .
3) Devuelve un objeto std:: reverse_iterator < T * > al final inverso del array .
4) Retorna un objeto std:: reverse_iterator < const T * > al final inverso de il .
5) Devuelve std:: end ( c ) , tratando c siempre como calificado const.
Si C es un Container estándar, devuelve un objeto C::const_reverse_iterator .

range-rbegin-rend.svg

Contenidos

Parámetros

c - un contenedor o vista con una función miembro rend
array - un arreglo de tipo arbitrario
il - una std:: initializer_list

Valor de retorno

1,2) c. rend ( )
3) std:: reverse_iterator < T * > ( array )
4) std:: reverse_iterator < const T * > ( il. begin ( ) )
5) c. rend ( )

Excepciones

Puede lanzar excepciones definidas por la implementación.

Sobrecargas

Se pueden proporcionar sobrecargas personalizadas de rend para clases y enumeraciones que no exponen una función miembro rend() adecuada, pero que pueden ser iteradas.

Las sobrecargas de rend encontradas mediante búsqueda dependiente de argumento pueden utilizarse para personalizar el comportamiento de std :: ranges:: rend y std::ranges::crend .

(desde C++20)

Notas

La sobrecarga para std::initializer_list es necesaria porque no tiene una función miembro rend .

Ejemplo

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
    int a[]{4, 6, -3, 9, 10};
    std::cout << "Array estilo C `a` al revés: ";
    std::copy(std::rbegin(a), std::rend(a), std::ostream_iterator<int>(std::cout, " "));
    auto il = {3, 1, 4};
    std::cout << "\nstd::initializer_list `il` al revés: ";
    std::copy(std::rbegin(il), std::rend(il), std::ostream_iterator<int>(std::cout, " "));
    std::vector<int> v{4, 6, -3, 9, 10};
    std::cout << "\nstd::vector `v` al revés: ";
    std::copy(std::rbegin(v), std::rend(v), std::ostream_iterator<int>(std::cout, " "));
    std::cout << '\n';
}

Salida:

Array estilo C `a` al revés: 10 9 -3 6 4
std::initializer_list `il` al revés: 4 1 3
std::vector `v` al revés: 10 9 -3 6 4

Véase también

(C++11) (C++14)
devuelve un iterador al final de un contenedor o array
(plantilla de función)
devuelve un iterador inverso al inicio de un contenedor o array
(plantilla de función)
(C++11) (C++14)
devuelve un iterador al inicio de un contenedor o array
(plantilla de función)
devuelve un iterador inverso final a un rango
(objeto de punto de personalización)
devuelve un iterador inverso final a un rango de solo lectura
(objeto de punto de personalización)