std::ranges::crend
Определён в заголовочном файле <ranges> | ||
|---|---|---|
Определён в заголовочном файле <iterator> | ||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ crend = /* unspecified */;
}
| (начиная с C++20) (объект точки настройки) | |
| Сигнатура вызова | ||
template< class T >
requires /* see below */
constexpr /* see below */ auto crend( T&& t );
| (начиная с C++20) |
Возвращает конечный маркер для константного итератора(начиная с C++23), указывающий конец константно-квалифицированного(до C++23) диапазона, который рассматривается как последовательность в обратном порядке.
| Пусть
Вызов | (до C++23) |
| Если аргумент является lvalue или
Во всех остальных случаях вызов | (начиная с C++23) |
Если ranges::crend(e) допустимо для выражения e, где decltype((e)) является T, то CT моделирует std::ranges::range, а(до C++23) std::sentinel_for<S, I> во всех случаях является true, где S является decltype(ranges::crend(e)), а I является decltype(ranges::crbegin(e)). Кроме того, S моделирует constant-iterator, если оно моделирует input_iterator.(начиная с C++23)
Объекты точек настройки
Имя ranges::crend обозначает объект точки настройки, который является константным функциональным объектом типа класса литерального semiregular. Подробности см. в разделе Объект точки настройки.
Пример
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
int a[]{4, 6, -3, 9, 10};
std::cout << "Array backwards: ";
namespace ranges = std::ranges;
ranges::copy(ranges::rbegin(a), ranges::rend(a),
std::ostream_iterator<int>(std::cout, " "));
std::cout << '\n';
std::cout << "Vector backwards: ";
std::vector v{4, 6, -3, 9, 10};
ranges::copy(ranges::rbegin(v), ranges::rend(v),
std::ostream_iterator<int>(std::cout, " "));
std::cout << '\n';
}
Вывод:
Array backwards: 10 9 -3 6 4 Vector backwards: 10 9 -3 6 4
См. также
|
(C++20) | возвращает обратный конечный итератор для диапазона (объект точки настройки) |
|
(C++14) | возвращает обратный конечный итератор для контейнера или массива (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/crend