lambda函数怎么运用
时间: 2023-07-21 21:01:08 浏览: 83
Lambda 函数是一种匿名函数,可以在需要函数对象的地方使用,而无需显式定义一个函数。Lambda 函数的语法如下:
```
[capture](parameters) -> return_type {
// 函数体
}
```
其中:
- `capture` 是捕捉列表,用于指定Lambda函数可以访问的外部变量。
- `parameters` 是参数列表,用于指定Lambda函数的参数。
- `return_type` 是返回类型,用于指定Lambda函数的返回值类型。
- `{}` 中是函数体,包含了Lambda函数的具体实现。
Lambda 函数可以在很多场景中使用,比如:
- 作为函数对象传递给算法函数(如`std::sort`、`std::for_each`等)。
- 作为参数传递给其他函数或算法。
- 用于创建函数对象并立即调用。
下面是一些示例用法:
1. 作为函数对象传递给算法函数:
```cpp
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::sort(numbers.begin(), numbers.end(), [](int a, int b) {
return a > b;
});
```
2. 作为参数传递给其他函数:
```cpp
void processNumbers(std::vector<int> numbers, std::function<void(int)> callback) {
for (int num : numbers) {
callback(num);
}
}
processNumbers(numbers, [](int num) {
std::cout << num << " ";
});
```
3. 创建并立即调用Lambda函数:
```cpp
int result = [] (int a, int b) -> int {
return a + b;
}(10, 20);
```
以上示例展示了Lambda函数的一些基本用法,你可以根据具体的需求和语境来运用Lambda函数。
阅读全文