Namespaces
Variants

std::ranges::zip_transform_view<F,Views...>::iterator

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

可能带有 const 限定的 zip_transform_view 的迭代器类型,由 zip_transform_view::begin 返回,并在某些情况下由 zip_transform_view::end 返回。

类型 /*iterator*/<true> 或 /*iterator*/<false> 分别将底层视图视为 const 限定或非 const 限定。

成员类型

类型 定义
Parent (私有) maybe-const <Const, zip_transform_view>
(仅用于阐释的成员类型*)
Base (私有) maybe-const <Const, InnerView>
(仅用于阐释的成员类型*)
iterator_category
(有条件提供)

设 /*POT*/ 表示类型包

std::iterator_traits<std::iterator_t<
    /*maybe-const*/<Const, Views>>>::iterator_category...

若 /*Base*/ 满足 forward_range,则 iterator_category 表示:

  • std::input_iterator_tag,若
    std::invoke_result_t</*maybe-const*/<Const, F>&,
        ranges::range_reference_t</*maybe-const*/<Const, Views>>...>
    
不是引用。
  • 否则,
  • std::random_access_iterator_tag,若
(std::derived_from</*POT*/, std::random_access_iterator_tag> && ...) 是 true。
  • 否则,std::bidirectional_iterator_tag,若
(std::derived_from</*POT*/, std::bidirectional_iterator_tag> && ...) 是 true。
  • 否则,std::forward_iterator_tag,若
(std::derived_from</*POT*/, std::forward_iterator_tag> && ...) 是 true。
  • 否则,std::input_iterator_tag。

若 /*Base*/ 不满足 forward_range,则不提供。

iterator_concept /*ziperator*/<Const>::iterator_concept
value_type

设 /*RREF*/ 为 ranges::range_reference_t<Views>...,
且 /*CRREF*/ 为 ranges::range_reference_t<const Views>...。则:

  • std::remove_cvref_t<std::invoke_result_t<F&, /*RREF*/>> 若 Const 是 false,
  • std::remove_cvref_t<std::invoke_result_t<const F&, /*CRREF*/>> 否则。
difference_type range::range_difference_t</*Base*/>

数据成员

成员 描述
Parent* parent_ (私有) 指向父对象的指针
(仅用于阐释的成员对象*)
ziperator<Const> inner_ (私有) 一个迭代器
(仅用于阐释的成员对象*)

成员函数

构造迭代器
(公开成员函数)
获取对底层指向元素应用可调用对象的结果
(公开成员函数)
获取对底层指定偏移量处元素应用可调用对象的结果
(公开成员函数)
前进或回退底层迭代器
(公开成员函数)

非成员函数

比较底层迭代器
(函数)
对底层迭代器执行迭代器算术运算
(函数)

示例