std::ranges::transform_view<V,F>::iterator
< cpp | ranges | transform view
template< bool Const > class /*iterator*/ |
(C++20 起) | |
transform_view::begin
的返回类型,及底层视图为 common_range 时 tranform_view::end
的返回类型。
const 限定重载返回 /*iterator*/<true> 。非 const 限定重载返回 /*iterator*/<false> 。
此类模板的名称(此处示为 /*iterator*/ )是未指定的。
典型实现保有二个数据成员:指向(可为 const 限定的) V
中的迭代器与指向亲 transform_view
的指针。
成员类型
成员类型 | 定义 |
Parent (私有)
|
若 Const 为 true 则为 const transform_view<V, F> ,否则为 transform_view<V, F> 。名称仅用于阐释
|
Base (私有)
|
若 Const 为 true 则为 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 。 否则,令 C 为 std::iterator_traits<ranges::iterator_t<Base>>::iterator_category ,若 C 为 std::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> |
成员函数
构造迭代器 (公开成员函数) | |
返回底层迭代器 (公开成员函数) | |
访问变换的元素 (公开成员函数) | |
按下标访问元素 (公开成员函数) | |
推进或减少底层迭代器 (公开成员函数) |
非成员函数
比较底层迭代器 (函数) | |
进行迭代器算术 (函数) | |
获得到变换的元素的右值引用 (函数) | |
交换底层迭代器所指向的元素 (函数) |