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)
(Anmerkung: Der bereitgestellte HTML-Code enthält keinen übersetzbaren Text, da alle Tags und Attribute gemäß den Anweisungen unverändert bleiben sollen und die Tabellenzellen leer sind.)
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 im 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 rend ( C & c ) - > decltype ( c. rend ( ) ) ;
(1) (seit C++14)
(constexpr seit C++17)
template < class C >
auto rend ( const C & c ) - > decltype ( c. rend ( ) ) ;
(2) (seit C++14)
(constexpr seit C++17)
template < class T, std:: size_t N >
std:: reverse_iterator < T * > rend ( T ( & array ) [ N ] ) ;
(3) (seit C++14)
(constexpr seit C++17)
template < class T >
std:: reverse_iterator < const T * > rend ( std:: initializer_list < T > il ) ;
(4) (seit C++14)
(constexpr seit C++17)
template < class C >
auto crend ( const C & c ) - > decltype ( std :: rend ( c ) ) ;
(5) (seit C++14)
(constexpr seit C++17)

Gibt einen Iterator zum Reverse-Ende des gegebenen Bereichs zurück.

1,2) Gibt c. rend ( ) zurück, was typischerweise ein Iterator eine Position hinter dem Reverse-Ende 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 einen std:: reverse_iterator < T * > Objekt zum Reverse-Ende des array zurück.
4) Gibt einen std:: reverse_iterator < const T * > Objekt zum Reverse-Ende von il zurück.
5) Gibt std:: end ( 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 rend Member-Funktion
array - ein Array beliebigen Typs
il - eine std:: initializer_list

Rückgabewert

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

Exceptions

Kann implementierungsdefinierte Ausnahmen auslösen.

Überladungen

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

Durch argumentabhängige Namenssuche gefundene Überladungen von rend können verwendet werden, um das Verhalten von std :: ranges:: rend und std::ranges::crend anzupassen.

(since C++20)

Hinweise

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

Beispiel

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

Ausgabe:

C-style array `a` backwards: 10 9 -3 6 4
std::initializer_list `il` backwards: 4 1 3
std::vector `v` backwards: 10 9 -3 6 4

Siehe auch

(C++11) (C++14)
gibt einen Iterator zum Ende eines Containers oder Arrays zurück
(Funktions-Template)
gibt einen Reverse-Iterator zum Anfang eines Containers oder Arrays zurück
(Funktions-Template)
(C++11) (C++14)
gibt einen Iterator zum Anfang eines Containers oder Arrays zurück
(Funktions-Template)
gibt einen Reverse-End-Iterator für einen Bereich zurück
(Customization Point Object)
gibt einen Reverse-End-Iterator für einen schreibgeschützten Bereich zurück
(Customization Point Object)