Namespaces
Variants

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

从 zh.cppreference.net
 
 
范围库
范围适配器
 
 
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时存在)
令 MCF 为 maybe-const <Const, F>。
  • std::input_iterator_tag,如果std::invoke_result_t<MCF&, ranges::range_reference_t<Base>> 不是引用。

否则,令 C 为 std::iterator_traits<ranges::iterator_t<Base>>::iterator_category。

  • std::random_access_iterator_tag,如果C 是 std::contiguous_iterator_tag;
  • C,否则。
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>

数据成员

成员 描述
maybe-const <Const, V> current_ (私有) 迭代器
(仅用于阐释的成员对象*)
ranges::transform_view* parent_ (私有) 指向父对象的指针
(仅用于阐释的成员对象*)

成员函数

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

非成员函数

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

缺陷报告

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

缺陷报告 应用于 发布时行为 正确行为
P2259R1 C++20 成员 iterator_category 始终被定义 仅当 Base 满足 forward_range 概念时定义
LWG 3555 C++20 iterator_concept 的定义忽略 const 限定 修正为考虑 const 限定
LWG 3798 C++20 当转换结果为右值引用时 iterator_category 仅为 input 类别 可能具有更强的类别