std::vector<T,Allocator>::rend, std::vector<T,Allocator>::crend
De fr.cppreference.net
reverse_iterator rend();
|
(1) | (noexcept depuis C++11) (constexpr depuis C++20) |
const_reverse_iterator rend() const;
|
(2) | (noexcept depuis C++11) (constexpr depuis C++20) |
const_reverse_iterator crend() const noexcept;
|
(3) | (depuis C++11) (constexpr depuis C++20) |
Retourne un itérateur inverse vers l'élément suivant le dernier élément du vector inversé. Il correspond à l'élément précédant le premier élément du vector non inversé. Cet élément agit comme un espace réservé, toute tentative d'y accéder entraîne un comportement indéfini.
Valeur de retour
Itérateur inverse vers l'élément suivant le dernier élément.
Complexité
Constante.
Notes
libc++ rétroporte
crend()
au mode C++98.
Exemple
Exécuter ce code
#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);
}
Sortie :
16 8 4 2 1
Sum of nums: 31
Last fruit: raspberry
vector ‘empty’ is indeed empty.
Voir aussi
|
(C++11)
|
retourne un itérateur inverse vers le début
(fonction membre publique) |
|
(C++14)
|
retourne un itérateur inverse de fin pour un conteneur ou un tableau
(fonction template) |