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

来自cppreference.com
 
 
范围库
范围适配器
 
 
template< bool Const >
class /*iterator*/
(C++20 起)
(仅用于阐述*)

transform_view::begin 的返回类型,及底层视图为 common_rangetransform_view::end 的返回类型。

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

成员类型

成员类型 定义
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++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
P2259R1 C++20 始终定义成员类型 iterator_category 仅若 Base 实现 forward_range 才定义
LWG 3555 C++20 iterator_concept 的定义忽略 const 使之考虑
LWG 3798 C++20 当转换结果为右值引用时 iterator_category 仅为输入 可以有更强的类别