前言
lambda表达式:可调用的代码单元,可理解为一个未命名的内联函数
一、基本形式
[捕获列表](参数列表)->返回类型 {函数体};
int main()
{
int t = 0;
int t1 = 1;
auto f = [t1](int t2)->int {return t1+t2; };
std::cout << f(2) << std::endl;
}
----输出:3
二、捕捉列表
1.引用捕捉
[&变量](){函数体}
2.传值捕捉
[变量](){函数体}
3.隐式捕捉
[&](){函数体}
[=](){函数体}
三、mutable关键字
//f可以改变它捕捉的变量的值
auto f=[变量]() mutable {return ++变量;};
//例子
int main()
{
int t1 = 1;
auto f = [t1]() mutable {return ++t1; };
std::cout << f() << std::endl;
}
--输出:2