Lambda 表达式的语法如下:
[capture list](parameter list) -> return type {
// 函数体
}
以下是一个使用 Lambda 表达式的示例代码:
intmain() { inta=5; intb=10; // 使用 Lambda 表达式定义匿名函数并调用intresult= [&]()->int { //按引用捕获所有外部变量returna+b; }(); std::cout<<"Result: "<<result<<std::endl; return0; }
[]:表示捕获外部变量:下面是一些常见的捕获类型
[捕获变量]:表示不捕获任何外部变量
[=]:以传值的方式捕获外部的所有变量
[&]:以传引用的方式捕获外部所有变量
[this]:捕获外部的this指针
[=,&a]:以传值的方式捕获外部的所有变量,但是a变量以传引用的方式捕获
[a,b]:以值传递的方式捕获外部变量a和b
[a,&b]:a以传值方式捕获,b以传引用方式捕获
():表示参数列表
int:表示返回值类型
{}:表示参数体