如何定义一个lambda表达式?
[捕获列表](参数列表)->返回类型
{
//函数体
}
2、[]捕获列表
捕获列表分为以下几种:
1)值捕获 ;2)引用捕获 ;3)隐式捕获;4)表达式捕获
语法形式分为以下几种:
1) [ ]:不捕获外部变量
2)[name]:按值捕获变量name
3) [&name]:按引用捕获变量name
4) [this]:捕获当前变量,表达式可以访问该对象的所有成员
5)[=] 值捕获所有变量
6) [&] 引用捕获所有变量
7)[=,&x] 默认按照值捕获所有变量,除了x按照引用捕获
8)[&,x]:默认按照引用捕获所有变量,除了x按照值捕获
9) [name1=expr1,name2=expr2,...]: 捕获一系列表达式
3、详细的例子#includeusing namespace std; int main(int argc,char** argv) { auto lambda1 = [](){ cout<<"this is a lambda1"; }; lambda1(); int a = 10; int b = 20; auto lambda2 = [a](){ cout<<"this is a lambda2 and a = "<



