什么是Lambda表达式
lambda表达式本质上是匿名函数,它以一种简洁的形式定义了一个临时使用的函数
Lambda表达式语法规则
[CatchList](ParamList) mutable -> ReturnType {
//Statements...
return value;
}
ParamList、ReturnType和普通函数是一样的,大家应该不难理解
CatchList表示对外部参数的使用
CatchList为空,表示不能访问外部变量
CatchList为=,表示可以访问全部外部变量,按值传递
CatchList为&,表示可以访问全部外部变量,按引用传递
CatchList通过逗号隔开,可以手动指定访问哪些外部变量,带&为引用,不带则按值复制
mutable表示可以修改外部变量的值,默认不可以修改外部变量,只能访问
Lambda表达式使用示例
int main() {
auto add = [](int x, int y) -> int {
return x + y;
};
auto sum = add(100, 200);
cout
关注
打赏