std::ranges::slide_view<V>:: end
From cppreference.net
<
cpp
|
ranges
|
slide view
|
constexpr
auto
end
(
)
requires ( ! ( /*simple-view*/ < V > && /*slide-caches-nothing*/ < const V > ) ) ; |
(1) | (начиная с C++23) |
|
constexpr
auto
end
(
)
const
requires /*slide-caches-nothing*/ < const V > ; |
(2) | (начиная с C++23) |
Возвращает
sentinel
или
iterator
, представляющий конец
slide_view
.
1)
Пусть
base_
и
n_
будут базовыми членами данных. Эквивалентно:
-
Если
V
удовлетворяет концепции
slide-caches-nothing, return iterator < false > ( ranges:: begin ( base_ ) + ranges:: range_difference_t < V > ( size ( ) ) , n_ ) ; . -
Иначе, если
V
удовлетворяет концепции
slide-caches-last, return iterator < false > ( ranges:: prev ( ranges:: end ( base_ ) , n_ - 1 , ranges:: begin ( base_ ) ) , n_ ) ; . -
Иначе, если
V
удовлетворяет концепции
common_range, return iterator < false > ( ranges:: end ( base_ ) , ranges:: end ( base_ ) , n_ ) ; . - Иначе, return sentinel ( ranges:: end ( base_ ) ) ; .
Если
V
моделирует
slide-caches-last
, эта функция кэширует результат в
cached_end_
для использования при последующих вызовах. Это необходимо для обеспечения амортизированной постоянной временной сложности, требуемой
range
.
2)
Эквивалентно
begin
(
)
+
ranges::
range_difference_t
<
const
V
>
(
size
(
)
)
.
Содержание |
Параметры
(нет)
Возвращаемое значение
Сентинел
или
итератор
, представляющий конец
slide_view
.
Пример
Запустить этот код
#include <iostream> #include <ranges> int main() { static constexpr auto source = {'A', 'B', 'C', 'D'}; for (const auto subrange: source | std::views::slide(3)) { std::cout << "[ "; for (auto it = subrange.begin(); it != subrange.end(); ++it) std::cout << *it << ' '; std::cout << "]\n"; } }
Вывод:
[ A B C ] [ B C D ]
Смотрите также
|
возвращает итератор на начало
(public member function) |
|
|
(C++20)
|
возвращает итератор на начало диапазона
(customization point object) |
|
(C++20)
|
возвращает страж, указывающий на конец диапазона
(customization point object) |