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 (私有) 当 Const 为 false 时为 zip_transform_view,否则为 const zip_transform_view。
(仅用于阐述的成员类型*)
Base (私有) 当 Const 为 false 时为 InnerView,否则为 const InnerView。
(仅用于阐述的成员类型*)
iterator_category
(有条件提供)

令 /*maybe-const*/<Const, F>& 当 Const 为 true 时代表 const F&,否则代表 F&。
令 /*maybe-const*/<Const, Views> 当 Const 为 true 时代表 const Views,否则代表 Views。

令 /*POT*/ 代表类型包 std::iterator_traits<std::iterator_t<
    /*maybe-const*/<Const, Views>>>::iterator_category...

如果 /*Base*/ 实现 forward_range,那么 iterator_category:

不是引用。
  • 否则,
(std::derived_from</*POT*/, std::random_access_iterator_tag> && ...) 为 true。
(std::derived_from</*POT*/, std::bidirectional_iterator_tag> && ...) 为 true。
(std::derived_from</*POT*/, std::forward_iterator_tag> && ...) 为 true。

如果 /*Base*/ 并不实现 forward_range 则它不出现。

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

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

difference_type range::range_difference_t</*Base*/>

数据成员

成员对象 定义
parent_ (私有) 指向父对象的 Parent* 指针
(仅用于阐述的成员对象*)
inner_ (私有) An iterator of type ziperator<Const>.
(仅用于阐述的成员类型*)

成员函数

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

非成员函数

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

示例