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.
Типы-члены
| Член | Определение |
|---|---|
Parent (закрытый) |
maybe-const <Const,ranges::cartesian_product_view>>(тип-член, используемый только для иллюстрации*) |
iterator_category | std::input_iterator_tag |
iterator_concept |
|
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 | наименьший тип signed-integer-like (если существует), ширины которого достаточно для хранения произведения максимальных размеров всех базовых диапазонов |
Члены-данные
| Член | Описание |
|---|---|
Parent* parent_ (закрытый) | указатель на родительский объект cartesian_product_view(член-объект, используемый только для иллюстрации*) |
std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>,
| кортеж итераторов на текущие базовые элементы (член-объект, используемый только для иллюстрации*) |
Функции-члены
| создаёт итератор (открытая функция-член) |
|
| получает доступ к элементу (открытая функция-член) |
|
| получает доступ к элементу по индексу (открытая функция-член) |
|
| перемещает базовый итератор вперёд или назад (открытая функция-член) |
|
| перемещает итератор вперёд (функция-член, используемая только для иллюстрации*) |
|
| перемещает итератор назад (функция-член, используемая только для иллюстрации*) |
|
| возвращает расстояние между двумя итераторами (функция-член, используемая только для иллюстрации*) |
Функции, не являющиеся членами
|
(C++23) | сравнивает базовые итераторы (функция) |
|
(C++23) | выполняет арифметические операции над итераторами (функция) |
|
(C++23) | приводит результат разыменования базового итератора к соответствующему типу rvalue-ссылки (функция) |
|
(C++23) | обменивает местами элементы, на которые указывают базовые итераторы (функция) |
Пример
Ссылки
- Стандарт C++23 (ISO/IEC 14882:2024):
- 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/cpp/ranges/cartesian_product_view/iterator