📜  valarray apply()在C++中(1)

📅  最后修改于: 2023-12-03 15:20:56.338000             🧑  作者: Mango

valarray apply()在C++中

在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()作为参数。最后,输出了原始的数组和平方之后的数组。