在线文档教程
C++
数字 | Numerics

std::valarray::apply

STD::valArray::Apply

valarray apply( T func(T) ) const;
valarray<T> apply( T func(const T&) ) const;

返回一个大小相同的新值数组,该值是通过应用函数获得的。func元素的前一个值。

参数

func-function to apply to the values

返回值

通过应用函数获得值的结果值数组。func...

注记

函数的返回类型与std::valarray在这种情况下,替换类型具有以下属性:

  • const成员职能std::valarray提供。

  • std::valarray,,,std::slice_array,,,std::gslice_array,,,std::mask_arraystd::indirect_array可以从替换类型构造。

  • 所有接受类型参数的函数conststd::valarray&begin()end()%28,因为C++14%29也应该接受替换类型。

  • 接受两个类型参数的所有函数conststd::valarray&应该接受每一个组合conststd::valarray&以及替代型。

  • 返回类型不会在最嵌套的参数类型上添加两个以上的模板嵌套级别。

计算并打印前10个阶乘。

二次

#include <iostream> #include <valarray> #include <cmath> int main() { std::valarray<int> v = {1,2,3,4,5,6,7,8,9,10}; v = v.apply([](int n)->int { return std::round(std::tgamma(n+1) } for(auto n : v) { std::cout << n << ' '; } std::cout << '\n'; }

二次

产出:

二次

1 2 6 24 120 720 5040 40320 362880 3628800

二次

另见

for_eachapplies a function to a range of elements (function template)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/数值/valArray/Apply