命名空间
变体
操作

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

来自 cppreference.com
 
 
范围库
范围适配器
 
 
template< bool Const >
class /*iterator*/
(仅供说明*)

ranges::join_with_view<V, Pattern>::iteratorbegin()end() 返回的迭代器类型 ranges::join_with_view<V, Pattern>.

此类迭代器的状态以如下方式管理,好像有两个嵌套迭代器

  • 一个指向父范围的 外部迭代器 *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 >>

[edit] 确定迭代器概念

iterator_concept 定义如下

[edit] 确定迭代器类别

给定以下类型

iterator_category 仅当 std::is_reference_v<InnerBase >trueBaseInnerBase 分别符合 forward_range 模型时定义。在这种情况下,它定义如下

[edit] 数据成员

成员 描述
Parent * parent_ 指向父 join_with_view 的指针
(仅供说明*成员对象)
OuterIter outer_it_
(仅当 Base 符合 forward_range 模型时存在)
外部迭代器
(仅供说明*成员对象)
std::variant<PatternIter , InnerIter > inner_it_ 内部迭代器
(仅供说明*成员对象)

[edit] 成员函数

构造一个迭代器
(公有成员函数)
访问元素
(公有成员函数)
推进或倒退底层迭代器
(公有成员函数) [edit]

[edit] 非成员函数

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