std::ranges::slide_view<V>::begin
constexpr auto begin()
requires (!(__simple_view<V> && __slide_caches_nothing<const V>));
|
(1) | (с C++23) |
constexpr auto begin() const
requires __slide_caches_nothing<const V>;
|
(2) | (с C++23) |
Возвращает итератор на первый элемент slide_view.
1) Если
V соответствует __slide_caches_first, эквивалентно: return iterator<false>( В противном случае, эквивалентно:
ranges::begin(base_),
ranges::next(ranges::begin(base_), n_ - 1, ranges::end(base_)),
n_
);return iterator<false>(ranges::begin(base_), n_);.
Если
V соответствует __slide_caches_first, эта функция кэширует результат внутри slide_view::cached_begin_ для использования в последующих вызовах. Это необходимо для обеспечения амортизированной постоянной сложности, требуемой range.
2) Эквивалентно:
return iterator<true>(ranges::begin(base_), n_);.Параметры
(нет)
Возвращаемое значение
Итератор на первый элемент slide_view, указывающий на поддиапазон размером n_ возможно const-квалифицированного базового типа представления — V для перегрузки (1) или const V для перегрузки (2).
Пример
#include <iostream>
#include <ranges>
#include <string_view>
using namespace std::literals;
int main()
{
static constexpr auto source = {"∀x"sv, "∃y"sv, "ε"sv, "δ"sv};
auto view{std::ranges::slide_view(source, 2)};
const auto subrange{*(view.begin())};
for (std::string_view const s : subrange)
std::cout << s << ' ';
std::cout << '\n';
}Вывод:
∀x ∃y
См. также
|
(C++23)
|
возвращает итератор или конечную точку до конца (публичный член-функция) |
|
(C++23)
|
сравнивает конечную точку с итератором, возвращаемым из slide_view::begin (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/slide_view/begin