Namespaces
Variants

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

来自 zh.cppreference.net
 
 
范围库
范围适配器
 
 
template< bool Const >
class /*iterator*/
(仅用于阐述*)

ranges::join_with_view<V, Pattern>::iterator 是 begin() 和 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  >>

确定迭代器概念

iterator_concept 定义如下:

确定迭代器类别

给定以下类型:

iterator_category 仅在 std:: is_reference_v < InnerBase  > 为 true ,且 Base 与 InnerBase 均满足 forward_range 要求时被定义。此时其定义如下:

数据成员

成员 描述
Parent  * parent_ 指向父级 join_with_view 的指针
( 仅用于说明的成员对象* )
OuterIter outer_it_
(仅当 Base 满足 forward_range 概念时存在)
外层迭代器
( 仅用于说明的成员对象* )
std:: variant < PatternIter  , InnerIter  > inner_it_ 内层迭代器
( 仅用于说明的成员对象* )

成员函数

构造迭代器
(公开成员函数)
访问元素
(公开成员函数)
前进或回退底层迭代器
(公开成员函数)

非成员函数

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