std::valarray::apply
STD::valArray::Apply
valarray | | |
---|---|---|
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_array
和std::indirect_array
可以从替换类型构造。
- 所有接受类型参数的函数
const
std::valarray
&
除begin()
和end()
%28,因为C++14%29也应该接受替换类型。
- 接受两个类型参数的所有函数
const
std::valarray
&
应该接受每一个组合const
std::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_each | applies a function to a range of elements (function template) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。