std::ranges::chunk_by_view<V,Pred>::find_next, std::ranges::chunk_by_view<V,Pred>::find_prev
std::ranges::chunk_by_view::next
constexpr ranges::iterator_t<V>
/*find-next*/( ranges::iterator_t<V> current );
| (начиная с C++23) (только для пояснения*) |
Находит следующий фрагмент.
Пусть base_ и pred_ будут соответствующими базовыми членами данных chunk_by_view.
Эквивалентно
return ranges::next
(
ranges::adjacent_find
(
current, ranges::end(base_), std::not_fn(std::ref(*pred_))
),
1, ranges::end(base_)
);
Поведение не определено, если pred_.has_value() является false до вызова этой функции.
Используется в следующих нестатических функциях-членах:
-
ranges::chunk_by_view::iterator::operator++
Параметры
| current | - | итератор текущего элемента в адаптированном представлении |
Возвращаемое значение
Итератор на следующий фрагмент, как описано выше.
std::ranges::chunk_by_view::prev
constexpr ranges::iterator_t<V>
/*find-prev*/( ranges::iterator_t<V> current )
requires ranges::bidirectional_range<V>;
| (начиная с C++23) (только для пояснения*) |
Находит предыдущий фрагмент.
Пусть base_ и pred_ будут соответствующими базовыми членами данных chunk_by_view.
Возвращает итератор i в диапазоне [ranges::begin(base_), current) такой, что:
-
ranges::adjacent_find(i, current, std::not_fn(std::ref(*pred_)))равенcurrent, и - если
iне равенranges::begin(base_), тоbool(std::invoke(*pred_, *ranges::prev(i), *i))являетсяfalse.
Поведение не определено, если до вызова этой функции current == ranges::begin(base_) или pred_.has_value() != true.
Используется в следующих нестатических функциях-членах:
-
ranges::chunk_by_view::iterator::operator--
Параметры
| current | - | итератор текущего элемента в адаптированном представлении |
Возвращаемое значение
Итератор на предыдущий фрагмент, как описано выше.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/chunk_by_view/helpers