std::set<Key,Compare,Allocator>::rbegin, std::set<Key,Compare,Allocator>::crbegin
reverse_iterator rbegin(); | (1) | (без исключений начиная с C++11) |
const_reverse_iterator rbegin() const; | (2) | (без исключений начиная с C++11) |
const_reverse_iterator crbegin() const noexcept; | (3) | (начиная с C++11) |
Возвращает обратный итератор на первый элемент перевёрнутого set. Он соответствует последнему элементу неперевёрнутого set. Если set пуст, возвращаемый итератор равен rend().
Возвращаемое значение
Обратный итератор на первый элемент.
Сложность
Константная.
Примечания
Поскольку и iterator, и const_iterator являются константными итераторами (и фактически могут иметь один и тот же тип), изменять элементы контейнера с помощью итератора, возвращённого любой из этих функций-членов, невозможно.
Базовый итератор возвращаемого обратного итератора — это итератор end. Поэтому возвращаемый итератор инвалидируется в случае инвалидации итератора end.
libc++ переносит поддержку crbegin() в режим C++98.
Пример
#include <iostream>
#include <set>
int main()
{
std::set<unsigned> rep{1, 2, 3, 4, 1, 2, 3, 4};
for (auto it = rep.crbegin(); it != rep.crend(); ++it)
{
for (auto n = *it; n > 0; --n)
std::cout << "⏼" << ' ';
std::cout << '\n';
}
}
Вывод:
⏼ ⏼ ⏼ ⏼ ⏼ ⏼ ⏼ ⏼ ⏼ ⏼
См. также
|
(C++11) | возвращает обратный итератор на конец (функция-член) |
|
(C++14) | возвращает обратный итератор на начало контейнера или массива (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/set/rbegin