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)
Défini dans l'en-tête <array>
Défini dans l'en-tête <deque>
Défini dans l'en-tête <flat_map>
Défini dans l'en-tête <flat_set>
Défini dans l'en-tête <forward_list>
Défini dans l'en-tête <inplace_vector>
Défini dans l'en-tête <iterator>
Défini dans l'en-tête <list>
Défini dans l'en-tête <map>
Défini dans l'en-tête <regex>
Défini dans l'en-tête <set>
Défini dans l'en-tête <span>
Défini dans l'en-tête <string>
Défini dans l'en-tête <string_view>
Défini dans l'en-tête <unordered_map>
Défini dans l'en-tête <unordered_set>
Défini dans l'en-tête <vector>
template < class C >
auto rend ( C & c ) - > decltype ( c. rend ( ) ) ;
(1) (depuis C++14)
(constexpr depuis C++17)
template < class C >
auto rend ( const C & c ) - > decltype ( c. rend ( ) ) ;
(2) (depuis C++14)
(constexpr depuis C++17)
template < class T, std:: size_t N >
std:: reverse_iterator < T * > rend ( T ( & array ) [ N ] ) ;
(3) (depuis C++14)
(constexpr depuis C++17)
template < class T >
std:: reverse_iterator < const T * > rend ( std:: initializer_list < T > il ) ;
(4) (depuis C++14)
(constexpr depuis C++17)
template < class C >
auto crend ( const C & c ) - > decltype ( std :: rend ( c ) ) ;
(5) (depuis C++14)
(constexpr depuis C++17)

Retourne un itérateur vers la fin inverse de la plage donnée.

1,2) Retourne c. rend ( ) , qui est typiquement un itérateur pointant après la fin inverse de la séquence représentée par c .
1) Si C est un Container standard, retourne un objet C::reverse_iterator .
2) Si C est un Container standard, retourne un objet C::const_reverse_iterator .
3) Retourne un std:: reverse_iterator < T * > objet pointant vers la fin inverse du array .
4) Retourne un std:: reverse_iterator < const T * > objet pointant vers la fin inverse de il .
5) Renvoie std:: end ( c ) , avec c toujours traité comme qualifié const.
Si C est un Container standard, retourne un objet C::const_reverse_iterator .

range-rbegin-rend.svg

Table des matières

Paramètres

c - un conteneur ou une vue avec une fonction membre rend
array - un tableau de type arbitraire
il - un std:: initializer_list

Valeur de retour

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

Exceptions

Peut lever des exceptions définies par l'implémentation.

Surcharges

Des surcharges personnalisées de rend peuvent être fournies pour les classes et les énumérations qui n'exposent pas de fonction membre rend() appropriée, mais qui peuvent être itérées.

Les surcharges de rend trouvées par la recherche dépendante des arguments peuvent être utilisées pour personnaliser le comportement de std :: ranges:: rend et std::ranges::crend .

(depuis C++20)

Notes

La surcharge pour std::initializer_list est nécessaire car elle ne possède pas de fonction membre rend .

Exemple

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
    int a[]{4, 6, -3, 9, 10};
    std::cout << "Tableau style C `a` en sens inverse : ";
    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` en sens inverse : ";
    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` en sens inverse : ";
    std::copy(std::rbegin(v), std::rend(v), std::ostream_iterator<int>(std::cout, " "));
    std::cout << '\n';
}

Sortie :

Tableau style C `a` en sens inverse : 10 9 -3 6 4
std::initializer_list `il` en sens inverse : 4 1 3
std::vector `v` en sens inverse : 10 9 -3 6 4

Voir aussi

(C++11) (C++14)
retourne un itérateur vers la fin d'un conteneur ou d'un tableau
(fonction template)
retourne un itérateur inverse vers le début d'un conteneur ou d'un tableau
(fonction template)
(C++11) (C++14)
retourne un itérateur vers le début d'un conteneur ou d'un tableau
(fonction template)
retourne un itérateur inverse de fin vers une plage
(objet point de personnalisation)
retourne un itérateur inverse de fin vers une plage en lecture seule
(objet point de personnalisation)