📅  最后修改于: 2023-12-03 15:20:56.338000             🧑  作者: Mango
在C++中,valarray
是一个模板类,代表着一个值数组,可以通过apply()
方法对其进行函数操作。
valarray apply(function<return_type(Args)> f) const;
其中,f
代表着一个函数对象(可以是函数指针、lambda表达式或者是可调用对象),并返回一个新的valarray
。
#include <iostream>
#include <valarray>
#include <functional>
int square(int x) {
return x * x;
}
int main() {
std::valarray<int> nums{1, 2, 3, 4};
auto squared = nums.apply(square);
std::cout << "Original: ";
for (auto n : nums) {
std::cout << n << " ";
}
std::cout << "\nSquared: ";
for (auto n : squared) {
std::cout << n << " ";
}
}
输出:
Original: 1 2 3 4
Squared: 1 4 9 16
在上面的例子中,我们定义了一个函数square()
,对传入的参数进行平方运算。然后,我们使用valarray
创建了一个数组nums
,然后将其传入apply()
方法中,并将函数square()
作为参数。最后,输出了原始的数组和平方之后的数组。