命名空间
变体
操作

std::ranges::transform_view<V,F>::iterator

来自 cppreference.cn
 
 
范围库
范围适配器
 
 
template< bool Const >
class /*iterator*/
(自 C++20 起)
(仅为说明目的*)

的返回类型 transform_view::begin,以及 transform_view::end 当底层视图是 common_range 时。

类型 /*iterator*/<true> 由 const 限定的重载返回。类型 /*iterator*/<false> 由非 const 限定的重载返回。

目录

[编辑] 成员类型

成员类型 定义
Parent (私有的) maybe-const<Const, ranges::transform_view<V, F>>
(仅为说明目的的成员类型*)
Base (私有的) maybe-const<Const, V>
(仅为说明目的的成员类型*)
iterator_concept
iterator_category
(仅当 Base 模型为时存在)
forward_range)
MCFmaybe-const<Const, F>

否则,令 Cstd::iterator_traits<ranges::iterator_t<Base>>::iterator_category

value_type std::remove_cvref_t<std::invoke_result_t<MCF&, ranges::range_reference_t<Base>>>,其中 MCF 表示 maybe-const<Const, F>
difference_type ranges::range_difference_t<Base>

[编辑] 数据成员

成员名称 定义
current_ (私有的) 指向(可能为 const 限定的)V 的迭代器。
(仅为说明目的的成员对象*)
parent_ (私有的) 指向父 transform_view 的指针。
(仅为说明目的的成员对象*)

[编辑] 成员函数

构造一个迭代器
(公共成员函数)
返回底层迭代器
(公共成员函数)
访问已转换的元素
(公共成员函数)
通过索引访问元素
(公共成员函数)
前进或后退底层迭代器
(公共成员函数)

[编辑] 非成员函数

比较底层迭代器
(函数)
执行迭代器算术
(函数)
(C++20)
获取对已转换元素的右值引用
(函数)

[编辑] 缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。

DR 应用于 已发布行为 正确行为
P2259R1 C++20 成员 iterator_category 总是被定义 仅当 Base 模型为 forward_range 时定义
LWG 3555 C++20 iterator_concept 的定义忽略了 const 使其考虑 const
LWG 3798 C++20 如果转换结果是右值引用,则 iterator_category 仅为输入 可能具有更强的类别