std::vector::rbegin, std::vector::crbegin
Материал из cppreference.com
reverse_iterator rbegin(); | (до C++11) | |
reverse_iterator rbegin()noexcept; | (начиная с C++11) (до C++20) | |
constexpr reverse_iterator rbegin()noexcept; | (начиная с C++20) | |
const_reverse_iterator rbegin()const; | (до C++11) | |
const_reverse_iterator rbegin()constnoexcept; | (начиная с C++11) (до C++20) | |
constexpr const_reverse_iterator rbegin()constnoexcept; | (начиная с C++20) | |
const_reverse_iterator crbegin()constnoexcept; | (начиная с C++11) (до C++20) | |
constexpr const_reverse_iterator crbegin()constnoexcept; | (начиная с 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 {"апельсин", "яблоко", "малина"};std::vector<char> empty; // Напечатаем vector.std::for_each(nums.rbegin(), nums.rend(), [](constint n){std::cout<< n <<' ';});std::cout<<'\n'; // Сумма всех чисел в vector nums (если такие есть), печатаем результат.std::cout<<"Сумма чисел: "<<std::accumulate(nums.rbegin(), nums.rend(), 0)<<'\n'; // Печатаем первый фрукт в vector fruits, с проверкой если они есть.if(!fruits.empty())std::cout<<"Первый фрукт: "<<*fruits.rbegin()<<'\n'; if(empty.rbegin()== empty.rend())std::cout<<"vector 'empty' - действительно пуст.\n";}
Вывод:
16 8 4 2 1 Сумма чисел: 31 Первый фрукт: малина vector 'empty' - действительно пуст.
[править]See also
(C++11) | возвращает обратный итератор на конец (public функция-элемент) |