C++ lambda函数
时间: 2023-08-14 22:14:18 浏览: 111
lambda、friend、运算符重载1
lambda函数是C++11引入的一种匿名函数,它可以在需要函数对象的地方使用,通常用于简化代码和提高可读性。lambda函数可以在定义它的上下文中捕获变量,并且可以有自己的参数列表和返回类型。
下面是一个lambda函数的基本语法:
```
[capture list](parameters) -> return_type {
// 函数体
}
```
其中,`capture list`是一个可选的捕获列表,用于指定lambda函数所需捕获的变量。`parameters`是lambda函数的参数列表,和普通函数类似。`return_type`是lambda函数的返回类型,可以省略,编译器会自动推导。
以下是一个示例:
```cpp
#include <iostream>
int main() {
int x = 5;
int y = 3;
// lambda函数将x和y作为值捕获
auto sum = [x, y]() {
return x + y;
};
std::cout << "Sum: " << sum() << std::endl;
return 0;
}
```
在上面的示例中,lambda函数通过值捕获了变量x和y,并返回它们的和。通过调用`sum()`,可以得到结果8。
在lambda函数中,还可以使用引用捕获、隐式捕获和省略参数列表等特性,使其更加灵活和强大。对于复杂的场景,lambda函数可以与标准算法(如`std::for_each`、`std::transform`等)结合使用,以提供更简洁的代码。
阅读全文