std::set<Key,Compare,Allocator>::rend, std::set<Key,Compare,Allocator>::crend
reverse_iterator rend(); | (1) | (noexcept начиная с C++11) |
const_reverse_iterator rend() const; | (2) | (noexcept начиная с C++11) |
const_reverse_iterator crend() const noexcept; | (3) | (начиная с C++11) |
Возвращает обратный итератор на элемент, следующий за последним элементом инвертированного set. Он соответствует элементу, предшествующему первому элементу неинвертированного set. Этот элемент служит заполнителем; попытка обратиться к нему приводит к неопределённому поведению.
Возвращаемое значение
Обратный итератор на элемент, следующий за последним элементом.
Сложность
Постоянная.
Примечания
Поскольку и iterator, и const_iterator являются константными итераторами (и фактически могут иметь один и тот же тип), изменить элементы контейнера с помощью итератора, возвращаемого любой из этих функций-членов, невозможно.
libc++ добавляет поддержку crend() в режиме 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/rend