1.Lambda表达式的基本语法
Lambda表达式是一个匿名函数,为了简化编程工作。
Lambda表达式语法:[ ] ()->{}
- [ ]中填写捕获方式,当表达式需要调用外部变量时,需要填写捕获外部变量的方式如 " =“、”&"等。
- ( )中填写函数传入的参数
- ->后填写函数返回值
- { }中填写函数体
note:当以“=”作为捕获方式传入外部参数时,在函数体中无法修改该外部变量的值,需要加上mutable修饰符。
int main()
{
int a = 10;
auto lambda = [=](int value)mutable->int {a = 5; return a + value; };
int b = lambda(10);
cout << b << endl;
return 0;
}
2.Lambda与仿函数
仿函数是实现lambda表达式的一种方式,在C++11中lambda可以视为仿函数的一种等价形式
3.lambda表达式类型
lambda表达式是一种闭包类型,每一个lambda表达式会产生一个临时对象(右值),严格来说lambda表达式并非函数指针,lambda表达式可以转为函数指针,但是函数指针无法转为lambda表达式。



