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

 
 
 
 
template< bool Const >
class /*iterator*/
(C++20 起)

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

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

此类模板的名称(此处示为 /*iterator*/ )是未指定的。

典型实现保有二个数据成员:指向(可为 const 限定的) V 中的迭代器与指向亲 transform_view 的指针。

成员类型

 
成员类型 定义
Parent(私有) Consttrue 则为 const transform_view<V, F> ,否则为 transform_view<V, F> 。名称仅用于阐释
Base(私有) Consttrue 则为 const V ,否则为 V 。名称仅用于阐释
iterator_concept V 实现 random_access_range 则为 std::random_access_iterator_tag
V 实现 bidirectional_range 则为 std::bidirectional_iterator_tag
V 实现 forward_range 则为 std::forward_iterator_tag
否则为 std::input_iterator_tag
iterator_category std::invoke_result_t<F&, ranges::range_reference_t<Base>> 不是左值引用则为 std::input_iterator_tag
否则,令 Cstd::iterator_traits<ranges::iterator_t<Base>>::iterator_category ,若 Cstd::contiguous_iterator_tag 则该类型为 std::random_access_iterator_tag ;否则该类型为 C
value_type std::remove_cvref_t<std::invoke_result_t<F&, ranges::range_reference_t<Base>>>
difference_type ranges::range_difference_t<Base>

成员函数

构造迭代器
(公开成员函数)
返回底层迭代器
(公开成员函数)
访问变换的元素
(公开成员函数)
按下标访问元素
(公开成员函数)
推进或减少底层迭代器
(公开成员函数)

非成员函数

比较底层迭代器
(函数)
进行迭代器算术
(函数)
获得到变换的元素的右值引用
(函数)
交换底层迭代器所指向的元素
(函数)