Namespaces
Variants

std::map<Key,T,Compare,Allocator>:: rbegin, std::map<Key,T,Compare,Allocator>:: crbegin

From cppreference.net

reverse_iterator rbegin ( ) ;
(1) (noexcept начиная с C++11)
(constexpr начиная с C++26)
const_reverse_iterator rbegin ( ) const ;
(2) (noexcept начиная с C++11)
(constexpr начиная с C++26)
const_reverse_iterator crbegin ( ) const noexcept ;
(3) (начиная с C++11)
(constexpr начиная с C++26)

Возвращает обратный итератор на первый элемент обращенного * this . Он соответствует последнему элементу необращенного * this .

Если * this пуст, возвращаемый итератор равен rend() .

range-rbegin-rend.svg

Содержание

Возвращаемое значение

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

Сложность

Константа.

Примечания

Базовый итератор возвращаемого обратного итератора является конечным итератором . Следовательно, возвращаемый итератор становится недействительным, если и когда конечный итератор становится недействительным.

libc++ переносит обратно crbegin() в режим C++98.

Пример

#include <iomanip>
#include <iostream>
#include <string_view>
#include <map>
int main()
{
    const std::map<int, std::string_view> coins
    {
        {10, "dime"},
        {100, "dollar"},
        {50, "half dollar"},
        {5, "nickel"},
        {1, "penny"},
        {25, "quarter"}
    }; // инициализационные записи в алфавитном порядке по имени
    std::cout << "Монеты США в обращении, от наибольшего к наименьшему номиналу:\n";
    for (auto it = coins.crbegin(); it != coins.crend(); ++it)
        std::cout << std::setw(11) << it->second << " = ¢" << it->first << '\n';
}

Вывод:

Монеты США в обращении, от наибольшего к наименьшему номиналу:
     dollar = ¢100
half dollar = ¢50
    quarter = ¢25
       dime = ¢10
     nickel = ¢5
      penny = ¢1

Смотрите также

(C++11)
возвращает обратный итератор на конец
(публичная функция-член)
возвращает обратный итератор на начало контейнера или массива
(шаблон функции)