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)
(Anmerkung: Der bereitgestellte HTML-Code enthält keinen übersetzbaren Text, da alle Tags leer sind. Gemäß den Anweisungen wurden keine HTML-Tags oder Attribute übersetzt.)
Definiert im Header <array>
Definiert im Header <deque>
Definiert in Header <flat_map>
Definiert in Header <flat_set>
Definiert im Header <forward_list>
Definiert im Header <inplace_vector>
Definiert im Header <iterator>
Definiert im Header <list>
Definiert im Header <map>
Definiert in Header <regex>
Definiert in Header <set>
Definiert in Header <span>
Definiert im Header <string>
Definiert im Header <string_view>
Definiert in Header <unordered_map>
Definiert im Header <unordered_set>
Definiert in Header <vector>
template < class C >
auto rbegin ( C & c ) - > decltype ( c. rbegin ( ) ) ;
(1) (seit C++14)
(constexpr seit C++17)
template < class C >
auto rbegin ( const C & c ) - > decltype ( c. rbegin ( ) ) ;
(2) (seit C++14)
(constexpr seit C++17)
template < class T, std:: size_t N >
std:: reverse_iterator < T * > rbegin ( T ( & array ) [ N ] ) ;
(3) (seit C++14)
(constexpr seit C++17)
template < class T >
std:: reverse_iterator < const T * > rbegin ( std:: initializer_list < T > il ) ;
(4) (seit C++14)
(constexpr seit C++17)
template < class C >
auto crbegin ( const C & c ) - > decltype ( std :: rbegin ( c ) ) ;
(5) (seit C++14)
(constexpr seit C++17)

Gibt einen Iterator zum umgekehrten Anfang des gegebenen Bereichs zurück.

1,2) Gibt c. rbegin ( ) zurück, was typischerweise ein Iterator zum umgekehrten Anfang der durch c repräsentierten Sequenz ist.
1) Wenn C ein standardmäßiger Container ist, gibt ein C::reverse_iterator -Objekt zurück.
2) Wenn C ein standardmäßiger Container ist, gibt ein C::const_reverse_iterator -Objekt zurück.
3) Gibt ein std:: reverse_iterator < T * > Objekt zum umgekehrten Anfang des array zurück.
4) Gibt einen std:: reverse_iterator < const T * > -Objekt zum umgekehrten Anfang von il zurück.
5) Gibt std :: rbegin ( c ) zurück, wobei c stets als const-qualifiziert behandelt wird.
Falls C ein standardmäßiger Container ist, gibt ein C::const_reverse_iterator -Objekt zurück.

range-rbegin-rend.svg

Inhaltsverzeichnis

Parameter

c - ein Container oder View mit einer rbegin Member-Funktion
array - ein Array beliebigen Typs
il - eine std:: initializer_list

Rückgabewert

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

Exceptions

Kann implementierungsdefinierte Ausnahmen auslösen.

Überladungen

Benutzerdefinierte Überladungen von rbegin können für Klassen und Aufzählungen bereitgestellt werden, die keine geeignete rbegin() Memberfunktion bereitstellen, aber dennoch iteriert werden können.

Überladungen von rbegin , die durch argumentabhängige Namenssuche gefunden werden, können verwendet werden, um das Verhalten von std :: ranges:: rbegin und std::ranges::crbegin anzupassen.

(seit C++20)

Hinweise

Die Überladung für std::initializer_list ist notwendig, da sie keine Member-Funktion rbegin besitzt.

Beispiel

#include <iostream>
#include <iterator>
#include <vector>
int main()
{
    std::vector<int> v = {3, 1, 4};
    auto vi = std::rbegin(v); // der Typ von "vi" ist std::vector<int>::reverse_iterator
    std::cout << "*vi = " << *vi << '\n';
    *std::rbegin(v) = 42; // OK: nach Zuweisung v[2] == 42
//  *std::crbegin(v) = 13; // Fehler: die Position ist schreibgeschützt
    int a[] = {-5, 10, 15};
    auto ai = std::rbegin(a); // der Typ von "ai" ist std::reverse_iterator<int*>
    std::cout << "*ai = " << *ai << '\n';
    auto il = {3, 1, 4};
    // der Typ von "it" unten ist std::reverse_iterator<int const*>:
    for (auto it = std::rbegin(il); it != std::rend(il); ++it)
        std::cout << *it << ' ';
    std::cout << '\n';
}

Ausgabe:

*vi = 4
*ai = 15
4 1 3

Siehe auch

(C++11) (C++14)
gibt einen Iterator zum Anfang eines Containers oder Arrays zurück
(Funktionstemplate)
(C++11) (C++14)
gibt einen Iterator zum Ende eines Containers oder Arrays zurück
(Funktionstemplate)
(C++14)
gibt einen Reverse-End-Iterator für einen Container oder ein Array zurück
(Funktionstemplate)
gibt einen Reverse-Iterator zu einem Bereich zurück
(Anpassungspunktobjekt)
gibt einen Reverse-Iterator zu einem schreibgeschützten Bereich zurück
(Anpassungspunktobjekt)