std::vector<T,Allocator>::rend, std::vector<T,Allocator>::crend
Von de.cppreference.net
reverse_iterator rend();
|
(1) | (noexcept seit C++11) (constexpr seit C++20) |
const_reverse_iterator rend() const;
|
(2) | (noexcept seit C++11) (constexpr seit C++20) |
const_reverse_iterator crend() const noexcept;
|
(3) | (seit C++11) (constexpr seit C++20) |
Gibt einen Rückwärtsiterator auf das Element nach dem letzten Element des umgekehrten vector zurück. Es entspricht dem Element vor dem ersten Element des nicht umgekehrten vector. Dieses Element dient als Platzhalter; der Versuch, darauf zuzugreifen, führt zu undefiniertem Verhalten.
Rückgabewert
Umgekehrter Iterator auf das Element nach dem letzten Element.
Komplexität
Konstante.
Hinweise
libc++ portiert
crend()
in den C++98-Modus zurück.
Beispiel
Diesen Code ausführen
#include <algorithm>
#include <cassert>
#include <iostream>
#include <numeric>
#include <string>
#include <vector>
int main()
{
std::vector<int> nums{1, 2, 4, 8, 16};
std::vector<std::string> fruits{"orange", "apple", "raspberry"};
std::vector<char> empty;
// Print vector nums.
std::for_each(nums.crbegin(), nums.crend(),
[](const int n) { std::cout << n << ' '; });
std::cout << '\n';
// Sum all integers in the vector nums, printing only the result.
std::cout << "Sum of nums: "
<< std::accumulate(nums.crbegin(), nums.crend(), 0) << '\n';
// Print the last fruit in the vector fruits, checking if there is any.
if (!fruits.empty())
std::cout << "Last fruit: " << *fruits.crbegin() << '\n';
if (empty.crbegin() == empty.crend())
std::cout << "vector ‘empty’ is indeed empty.\n";
// Modify the last element in nums.
*nums.rbegin() = 32;
assert(*nums.crbegin() == 32);
}
Ausgabe:
16 8 4 2 1
Sum of nums: 31
Last fruit: raspberry
vector ‘empty’ is indeed empty.
Siehe auch
|
(C++11)
|
gibt einen Reverse-Iterator zum Anfang zurück
(öffentliche Elementfunktion) |
|
(C++14)
|
gibt einen Reverse-End-Iterator für einen Container oder ein Array zurück
(Funktionstemplate) |