Spec-Zone.ru › C++

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API