Spec-Zone.ru › C++

std::ranges::cartesian_product_view<First, Vs...>::iterator

template< bool Const >
class /*iterator*/
(с C++23)
(только для примера*)

Тип результата cartesian_product_view::begin, и cartesian_product_view::end, когда базовое представление V является common_range.

Тип /*iterator*/<true> возвращается квалифицированными перегрузками с const. Тип /*iterator*/<false> возвращается перегрузками без const.

Типы членов

Тип члена Определение
iterator_category std::input_iterator_tag
iterator_concept
  • std::random_access_iterator_tag, если /*cartesian-product-is-random-access*/<Const, First, Vs...> моделируется,
  • std::bidirectional_iterator_tag, если /*cartesian-product-is-bidirectional*/<Const, First, Vs...> моделируется,
  • std::forward_iterator_tag, если
    /*maybe-const*/<Const, First> моделирует forward_range,
  • std::input_iterator_tag в противном случае
value_type

std::tuple<ranges::range_value_t</*maybe-const*/<Const, First>>,
ranges::range_value_t</*maybe-const*/<Const, Vs>>...>;

reference

std::tuple<ranges::range_reference_t</*maybe-const*/<Const, First>>,
ranges::range_reference_t</*maybe-const*/<Const, Vs>>...>;

difference_type Тип целого числа (возможно, наименьшего), определённый реализацией, достаточный для хранения произведения максимальных размеров всех базовых диапазонов, если такой тип существует.
Parent (private) /*maybe-const*/<Const, cartesian_product_view>.
(тип члена, только для примера*)

Члены данных

Объект члена Определение
parent_ (private) Указатель типа Parent на родительский cartesian_product_view.
(объект члена, только для примера*)
current_ (private) Кортеж итераторов на текущие базовые элементы типа std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>,
ranges::iterator_t</*maybe-const*/<Const, Vs>>...>
.
(объект члена, только для примера*)

Члены-функции

(конструктор)
(C++23)
создает итератор
(публичная функция-член)
operator*
(C++23)
доступ к элементу
(публичная функция-член)
operator[]
(C++23)
доступ к элементу по индексу
(публичная функция-член)
operator++operator++(int)operator--operator--(int)operator+=operator-=
(C++23)
продвигает или уменьшает базовый итератор
(публичная функция-член)
next
(C++23)
продвигает итератор
(функция члена, только для примера*)
prev
(C++23)
уменьшает итератор
(функция члена, только для примера*)
distance_from
(C++23)
возвращает расстояние между двумя итераторами
(функция члена, только для примера*)

Независимые функции

operator==operator<=>
(C++23)
сравнивает базовые итераторы
(функция)
operator+operator-
(C++23)
выполняет арифметику итераторов
(функция)
iter_move
(C++23)
преобразует результат разыменования базового итератора в ассоциированный тип ссылки rvalue
(функция)
iter_swap
(C++23)
меняет местами элементы, на которые указывают базовые итераторы
(функция)

Пример

Ссылки

  • Стандарт C++23 (ISO/IEC 14882:2023):
    • 26.7.32.3 Шаблон класса cartesian_product_view::iterator [range.cartesian.iterator]

См. также

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/cartesian_product_view/iterator

Spec-Zone.ru

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