std::vector<T,Allocator>::rbegin, std::vector<T,Allocator>::crbegin
С ru.cppreference.net
reverse_iterator rbegin();
|
(1) | (noexcept начиная с C++11) (constexpr начиная с C++20) |
const_reverse_iterator rbegin() const;
|
(2) | (noexcept начиная с C++11) (constexpr начиная с C++20) |
const_reverse_iterator crbegin() const noexcept;
|
(3) | (начиная с C++11) (constexpr начиная с C++20) |
Возвращает обратный итератор на первый элемент перевёрнутого vector. Он соответствует последнему элементу неперевёрнутого vector. Если vector пуст, возвращаемый итератор равен rend().
Возвращаемое значение
Обратный итератор на первый элемент.
Сложность
Константа.
Примечания
Базовый итератор возвращаемого обратного итератора является конечным итератором . Следовательно, возвращаемый итератор становится недействительным, если и когда конечный итератор становится недействительным.
libc++ переносит обратно
crbegin()
в режим C++98.
Пример
Запустить этот код
#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);
}
Вывод:
16 8 4 2 1
Sum of nums: 31
Last fruit: raspberry
vector ‘empty’ is indeed empty.
Смотрите также
|
(C++11)
|
возвращает обратный итератор на конец
(public member function) |
|
(C++14)
|
возвращает обратный итератор на начало контейнера или массива
(function template) |