深入讲解c++的lambda函数
时间: 2024-09-25 07:01:56 浏览: 40
C++ Lambda Story - From C++98 to C++20.pdf
在 C++ 中,lambda 函数是一种匿名函数,它允许你在需要的时候定义并传递一个小型的一次性功能。它们通常用于 C++11 及以后版本,提供了一种简洁的方式来处理简单任务,尤其是在 STL(标准模板库)容器操作、线程回调以及事件驱动编程等场景。
以下是 lambda 函数的基本语法:
```cpp
[capture-list](parameters) -> return-type {
// function body
}
```
- `capture-list`:可选,指定对哪些外部变量进行捕获(值捕获 `&`、引用捕获 `&&` 或者自动捕获默认 `[]`)。
- `parameters`:函数参数列表,可以有0到任意个参数。
- `-> return-type`:可选,返回类型,如果 lambda 不明确则需要显式声明。
- `{ function-body }`:函数体,实现了你要执行的操作。
例如,创建一个简单的加法函数:
```cpp
auto add = [](int a, int b) -> int { return a + b; };
std::cout << add(5, 3); // 输出 8
```
Lambda 还支持在定义时执行初始化表达式(Initializer list):
```cpp
auto square = [x = 4](int y) mutable { return x * y; };
std::cout << square(2); // 输出 8 (x 自动初始化为 4)
```
阅读全文