lambda 的用法 举例 c++
时间: 2023-07-02 13:04:52 浏览: 45
在 C++ 中,lambda 表达式是一种函数对象,可以在需要函数对象的任何地方使用。它的基本语法如下:
```
[capture list] (parameters) -> return_type {
// 函数体
}
```
其中,`capture list` 可以为空或包含一个或多个变量,用于捕获外部变量,并将它们作为函数对象的局部变量。`parameters` 是函数的参数列表,`return_type` 是返回类型,可以省略,由编译器自动推导。
下面是一个简单的例子,演示了如何使用 lambda 表达式来实现排序:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums {1, 2, 3, 4, 5};
// 使用 lambda 表达式实现从大到小排序
std::sort(nums.begin(), nums.end(), [](int a, int b) {
return a > b;
});
// 输出排序后的结果
for (auto num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的例子中,我们使用了 lambda 表达式来实现从大到小的排序。`[](int a, int b) { return a > b; }` 是一个匿名函数对象,它接受两个整数类型的参数 `a` 和 `b`,并返回一个 `bool` 类型的值,表示 `a` 是否大于 `b`。在 `std::sort` 函数中,我们将 lambda 表达式作为第三个参数传递,表示排序规则。