Namespaces
Variants

std:: rbegin, std:: crbegin

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)
rbegin crbegin
(C++14) (C++14)
(C++11) (C++14)
(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 rbegin ( C & c ) - > decltype ( c. rbegin ( ) ) ;
(1) (depuis C++14)
(constexpr depuis C++17)
template < class C >
auto rbegin ( const C & c ) - > decltype ( c. rbegin ( ) ) ;
(2) (depuis C++14)
(constexpr depuis C++17)
template < class T, std:: size_t N >
std:: reverse_iterator < T * > rbegin ( T ( & array ) [ N ] ) ;
(3) (depuis C++14)
(constexpr depuis C++17)
template < class T >
std:: reverse_iterator < const T * > rbegin ( std:: initializer_list < T > il ) ;
(4) (depuis C++14)
(constexpr depuis C++17)
template < class C >
auto crbegin ( const C & c ) - > decltype ( std :: rbegin ( c ) ) ;
(5) (depuis C++14)
(constexpr depuis C++17)

Retourne un itérateur vers le début inverse de la plage donnée.

1,2) Retourne c. rbegin ( ) , qui est typiquement un itérateur vers le début 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 objet std:: reverse_iterator < T * > pointant vers le début inverse du array .
4) Retourne un objet std:: reverse_iterator < const T * > pointant vers le début inverse de il .
5) Retourne std :: rbegin ( c ) , en traitant c toujours 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 rbegin
array - un tableau de type arbitraire
il - un std:: initializer_list

Valeur de retour

1,2) c. rbegin ( )
3) std:: reverse_iterator < T * > ( array + N )
4) std:: reverse_iterator < const T * > ( il. end ( ) )
5) c. rbegin ( )

Exceptions

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

Surcharges

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

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

(depuis C++20)

Notes

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

Exemple

#include <iostream>
#include <iterator>
#include <vector>
int main()
{
    std::vector<int> v = {3, 1, 4};
    auto vi = std::rbegin(v); // le type de "vi" est std::vector<int>::reverse_iterator
    std::cout << "*vi = " << *vi << '\n';
    *std::rbegin(v) = 42; // OK : après l'affectation v[2] == 42
//  *std::crbegin(v) = 13; // erreur : l'emplacement est en lecture seule
    int a[] = {-5, 10, 15};
    auto ai = std::rbegin(a); // le type de "ai" est std::reverse_iterator<int*>
    std::cout << "*ai = " << *ai << '\n';
    auto il = {3, 1, 4};
    // le type de "it" ci-dessous est std::reverse_iterator<int const*> :
    for (auto it = std::rbegin(il); it != std::rend(il); ++it)
        std::cout << *it << ' ';
    std::cout << '\n';
}

Sortie :

*vi = 4
*ai = 15
4 1 3

Voir aussi

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