Пространства имён
Варианты
Действия

std::vector::rbegin, std::vector::crbegin

Материал из cppreference.com
< cpp‎ | container‎ | vector
 
 
 
 
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().

range-rbegin-rend.svg

Содержание

[править]Параметры

(нет)

[править]Возвращаемое значение

Обратный итератор на первый элемент.

[править]Сложность

Константная.


[править]Пример

#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 функция-элемент)[править]
close