帮我用c++写一个函数,用函数作为参数,写出过程
时间: 2024-02-22 16:01:00 浏览: 26
好的,我们可以编写一个函数,该函数接受一个函数作为参数,并将该函数应用于一个整数数组中的每个元素。函数的实现如下:
```cpp
#include <iostream>
#include <functional>
void applyFunction(std::function<int(int)> func, int* arr, int size) {
for (int i = 0; i < size; i++) {
arr[i] = func(arr[i]);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
// 定义一个Lambda函数,将其作为参数传递给applyFunction函数
auto square = [](int x) { return x * x; };
applyFunction(square, arr, 5);
// 输出变换后的数组
for (int i = 0; i < 5; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的代码中,我们定义了一个名为“applyFunction”的函数,它接受一个函数作为参数,并将该函数应用于一个整数数组中的每个元素。其中,“std::function<int(int)>”表示一个具有一个整数参数和一个整数返回值的函数类型。
在main函数中,我们定义了一个整数数组,并定义了一个Lambda函数“square”,该函数将其输入的整数平方并返回结果。然后,我们将该Lambda函数作为参数传递给“applyFunction”函数,并对数组进行变换。最后,我们输出变换后的数组。
运行上面的代码会得到以下输出:
```
1 4 9 16 25
```
这表明我们成功地将Lambda函数应用于数组中的每个元素,并得到了正确的结果。