std::vector<T,Allocator>::rbegin, std::vector<T,Allocator>::crbegin
| (1) | ||
iterator rbegin(); | (до C++11) | |
iterator rbegin() noexcept; | (с C++11) (constexpr с C++20) | |
| (2) | ||
const_iterator rbegin() const; | (до C++11) | |
const_iterator rbegin() const noexcept; | (с C++11) (constexpr с C++20) | |
const_iterator crbegin() const noexcept; | (3) | (с C++11) (constexpr с C++20) |
Возвращает обратный итератор на первый элемент перевёрнутого vector. Он соответствует последнему элементу неперевёрнутого vector. Если vector пусто, возвращаемый итератор равен rend().
Параметры
(нет)
Возвращаемое значение
Обратный итератор на первый элемент.
Сложность
Постоянная.
Пример
#include <algorithm>
#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.
std::for_each(nums.rbegin(), nums.rend(), [](const int n) { std::cout << n << ' '; });
std::cout << '\n';
// Sums all integers in the vector nums (if any), printing only the result.
std::cout << "Sum of nums: "
<< std::accumulate(nums.rbegin(), nums.rend(), 0) << '\n';
// Prints the first fruit in the vector fruits, checking if there is any.
if (!fruits.empty())
std::cout << "First fruit: " << *fruits.rbegin() << '\n';
if (empty.rbegin() == empty.rend())
std::cout << "vector 'empty' is indeed empty.\n";
}Вывод:
16 8 4 2 1 Sum of nums: 31 First fruit: raspberry vector 'empty' is indeed empty.
См. также
|
(C++11) | возвращает обратный итератор до конца (публичный член-функция) |
|
(C++14) | возвращает обратный итератор до начала контейнера или массива (шаблонная функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/container/vector/rbegin