c++拉姆达表达式闭包
时间: 2024-01-31 21:10:25 浏览: 91
C++ 之 Lambda 表达式
C++ lambda表达式是一种匿名函数,它可以在函数内部定义,并且可以捕获外部变量。闭包是指在lambda表达式中捕获的外部变量的副本,这些变量可以在lambda表达式中使用。
以下是两个关于C++ lambda表达式和闭包的例子:
1. 使用mutable关键字和捕获列表:
```cpp
#include <iostream>
using namespace std;
int main() {
int a = 10;
auto f1 = [=]() mutable -> int {
a += 10;
return a;
};
a += 100;
cout << "f1: " << f1() << endl; // 输出:20
cout << "a: " << a << endl; // 输出:110
}
```
2. 使用参数表和函数体:
```cpp
#include <iostream>
using namespace std;
int main() {
auto f = [](int a) -> int {
return a + 1;
};
cout << f(1) << endl; // 输出:2
}
```
阅读全文