C++函数的参数是匿名函数怎么写?
时间: 2024-05-04 10:20:32 浏览: 131
c11的lambda(匿名函数)详解
在 C++ 中,不支持将匿名函数作为函数参数,但可以使用 lambda 表达式来实现类似的功能。Lambda 表达式是一种能够在函数内声明并定义匿名函数的方式,语法如下:
```c++
[capture_list](parameter_list) -> return_type {
// 函数体
}
```
其中,`capture_list` 用于指定需要捕获的外部变量,`parameter_list` 用于指定函数参数,`return_type` 用于指定返回值类型,`->` 是函数返回类型的符号,而函数体就是匿名函数的具体实现。
下面是一个将 lambda 表达式作为函数参数的示例代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> nums{5, 2, 7, 1, 9};
// 将 lambda 表达式作为函数参数
sort(nums.begin(), nums.end(), [](int x, int y) {
return x < y;
});
// 输出排序后的结果
for (int num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
在上面的示例中,`sort` 函数的第三个参数就是一个 lambda 表达式,用于指定排序的规则。匿名函数的参数列表为 `(int x, int y)`,返回类型为 `bool`,函数体为 `return x < y;`,表示按照从小到大的顺序排序。
阅读全文