Lambda表达式(可以理解为一个函数对象,调用时重载了“()”)
定义:一个匿名函数,通过不同[capture]来捕获上下文的变量,进行处理的函数
格式:[capture] (params) mutable -> return-type {}
参数介绍:
[capture]:
(params) mutable:传入的参数,默认为const,不可修改;加了mutable,变为可修改参数
return-type:返回值类型
{}:函数体
应用:
void main() { int a = 40; int b = 20; cout <<"a"<< a << endl; auto f = [a]()mutable {return a + 20; }; //可以理解f为一个函数对象 a = 0; auto c = f(); //调用是重载了括号() cout << "c:" << c << endl; }