C++ 范围库 std::ranges::transform_view template< bool Const > class /*sentinel*/ (C++20 起) 底层类型非 common_range 时tranform_view::end 的返回类型。 const 限定重载返回 /*sentinel*/<true> 。非 const 限定重载返回 /*sentinel*/<false>。 此类模板的名称(此处示为 /*sentinel*/ )是...
2)以std::move(current)初始化底层迭代器,并以std::addressof(parent)初始化指向父视图的指针。 3)从/*iterator*/<false>转换到/*iterator*/<true>。移动构造对应的成员。 参数 parent-(可为 const 限定的)std::ranges::transform_view current-指向(可为 const 限定的)V中的迭代器 ...
int main() { const auto v = { 0, 1, 2, 3, 4 }; auto x2 = [](int x) { return x << 1; }; std::ranges::transform_view tv{ v, x2 }; std::ostream_iterator<int> ostr{ std::cout, " " }; std::ranges::copy(v, ostr), std::cout << '\n'; std::ranges::copy(...
std::ranges::views::transform,std::ranges::transform_view 定义于头文件<ranges> template<ranges::input_rangeV, std::copy_constructibleF> requires ranges::view<V>&& std::is_object_v<F>&& std::regular_invocable<F&, ranges::range_reference_t<V>>&& ...
std::ranges::transform_view<V,F>::transform_view From cppreference.com transform_view()requiresstd::default_initializable<V>&& std::default_initializable<F>=default; (1)(since C++20) constexprexplicittransform_view(V base, F fun);
std::regular_invocable<constF&,ranges::range_reference_t<constV>>; (2)(since C++20) Returns aniteratorto the first element of thetransform_view. 1)Equivalent toreturn/*iterator*/<false>{*this,ranges::begin(base_)};, wherebase_is the underlying view. ...
变换 查看 编辑 历史 C++ 范围库 std::ranges::transform_view /*sentinel*/()=default; (1)(C++20 起) constexprexplicit/*sentinel*/(ranges::sentinel_t<Base>end); (2)(C++20 起) constexpr/*sentinel*/(/*sentinel*/<!Const>i) requires Const&& ...
C++ 范围库 std::ranges::transform_view template< class R, class F > transform_view( R&&, F ) -> transform_view<views::all_t<R>, F>;(C++20 起) 为std::ranges::transform_view 提供一个推导指引以允许从 range 和变换函数推导。
Effectively returns std::invoke(*parent_->fun_, *current_), where *parent_->fun_ is the transformation function stored in the parent transform_view, and current_ is the underlying iterator into V. Parameters(none) Return valueThe transformed element. Notes...
std::ranges::views::transform,std::ranges::transform_view Defined in header<ranges> (1) template<ranges::input_rangeV, std::copy_constructibleF> requiresranges::view<V>&& std::is_object_v<F>&& std::regular_invocable<F&,ranges::range_reference_t<V>>&& ...