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

来自cppreference.com
 
 
范围库
范围适配器
 
 
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*/>>,若 Constfalse
  • 否则为 std::remove_cvref_t<std::invoke_result_t<const F&, /*CRREF*/>>
difference_type range::range_difference_t</*Base*/>

数据成员

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

成员函数

构造迭代器
(公开成员函数)
获取对所指向的底层元素应用可调用对象的结果
(公开成员函数)
获取对给定偏移处的底层元素应用可调用对象的结果
(公开成员函数)
推进或减小底层迭代器
(公开成员函数) [编辑]

非成员函数

比较底层迭代器
(函数)
在底层迭代器上实施迭代器算术
(函数)

示例