std::vector<T,Allocator>::rend, std::vector<T,Allocator>::crend
De es.cppreference.net
reverse_iterator rend();
|
(1) | (noexcept desde C++11) (constexpr desde C++20) |
const_reverse_iterator rend() const;
|
(2) | (noexcept desde C++11) (constexpr desde C++20) |
const_reverse_iterator crend() const noexcept;
|
(3) | (desde C++11) (constexpr desde C++20) |
Devuelve un iterador inverso al elemento que sigue al último elemento del vector invertido. Corresponde al elemento anterior al primer elemento del vector no invertido. Este elemento actúa como un marcador de posición; intentar acceder a él resulta en un comportamiento indefinido.
Valor de retorno
Iterador inverso al elemento siguiente al último elemento.
Complejidad
Constante.
Notas
libc++ retrocede
crend()
al modo C++98.
Ejemplo
Ejecuta este código
#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);
}
Salida:
16 8 4 2 1
Sum of nums: 31
Last fruit: raspberry
vector ‘empty’ is indeed empty.
Véase también
|
(C++11)
|
devuelve un iterador inverso al principio
(función miembro pública) |
|
(C++14)
|
devuelve un iterador inverso final para un contenedor o array
(plantilla de función) |