命名空间
变体
操作

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

来自 cppreference.cn
 
 
范围库
范围适配器
 
 
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,并且 BaseInnerBase 各自建模 forward_range 时定义。在这种情况下,它定义如下

[编辑] 数据成员

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

[编辑] 成员函数

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

[编辑] 非成员函数

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