命名空间
变体
操作

std::ranges::join_with_view<V,Pattern>::iterator

来自 cppreference.cn
 
 
范围库 (Ranges library)
范围适配器 (Range adaptors)
 
 
template< bool Const >
class /*iterator*/
(仅作说明*)

ranges::join_with_view<V, Pattern>::iteratorranges::join_with_view<V, Pattern>begin()end() 返回的迭代器类型。

此类的迭代器状态通过两个嵌套迭代器进行管理:

  • 一个指向父范围 *parent_ 的“外部迭代器”

此迭代器类有一个不变式:内部迭代器始终可解引用,除非外部迭代器不可解引用。当迭代器构造、递增或递减时,其外部迭代器可能会被调整以保持不变式。

目录

[编辑] 模板参数

Const - 迭代器是否为常量迭代器

[编辑] 嵌套类型

仅用于说明的类型
类型 定义
Parent maybe-const <Const, ranges::join_with_view<V, Pattern>>
(仅供说明的成员类型*)
Base maybe-const <Const, V>
(仅供说明的成员类型*)
InnerBase ranges::range_reference_t<Base >
(仅供说明的成员类型*)
PatternBase maybe-const <Const, Pattern>
(仅供说明的成员类型*)
OuterIter ranges::iterator_t<Base >
(仅供说明的成员类型*)
InnerIter ranges::iterator_t<InnerBase >
(仅供说明的成员类型*)
PatternIter ranges::iterator_t<PatternBase >
(仅供说明的成员类型*)
迭代器属性类型
类型 定义
iterator_concept 一个 迭代器标签见下文
iterator_category
(有条件存在)
一个迭代器标签,见下文
value_type

std::common_type_t<ranges::range_value_t<InnerBase >,
                   ranges::range_value_t<PatternBase >>

difference_type

std::common_type_t<ranges::range_difference_t<Base >,
                   ranges::range_difference_t<InnerBase >,
                   ranges::range_difference_t<PatternBase >>

[编辑] 确定迭代器概念

iterator_concept 定义如下:

[编辑] 确定迭代器类别

给定以下类型

iterator_category 的定义当且仅当 std::is_reference_v<InnerBase >true,并且 BaseInnerBase 各自建模 forward_range。在这种情况下,它定义如下:

[编辑] 数据成员

成员 描述
Parent * parent_ 指向父级 join_with_view 的指针
(仅用于阐释的成员对象*)
OuterIter outer_it_
(仅当 Base 建模 forward_range 时存在)
外部迭代器
(仅用于阐释的成员对象*)
std::variant<PatternIter , InnerIter > inner_it_ 内部迭代器
(仅用于阐释的成员对象*)

[编辑] 成员函数

构造一个迭代器
(公开成员函数)
访问元素
(公开成员函数)
前进或后退底层迭代器
(public member function) [编辑]

[编辑] 非成员函数

比较底层迭代器
(函数)
(C++23)
将底层迭代器解引用的结果转换为其关联的右值引用类型
(函数)
(C++23)
交换两个底层迭代器指向的对象
(函数)