c++引入匿名函数,原旨在让用户将函数作为参数,因为函数有个返回值;典型的lambda是个测试表达式或者比较表达式,一般附带一个return语句
示例
[需要捕获使用的变量](形参列表){函数体}//这是函数的定义和声明
解释如下
需要捕获使用的变量:可以访问作用域内任何动态变量;
& : 按引用访问作用域内任何动态变量
= :按值访问作用域内任何动态变量
my_temp : 按值访问my_temp
&my_temp : 按引用访问my_temp
=,&my_temp:按值访问作用域内任何动态变量,按引用访问my_temp
以及其他的一些组合;
形参列表:
正常函数形参,例如int x;
函数体:
正常函数体
值得注意的是,lambda函数示例没有返回值类型声明,这只适用于函数体仅有一条return语句时,这时采用自动类型判断,当没有return时,自动判断为void
如果不止一条语句,需要使用返回类型后置语法
例如
[](int x)->int{
x = x+1;
return x;}
lambda函数的使用
一、[需要捕获使用的变量](形参列表){函数体}(实参列表)
二、auto f = [需要捕获使用的变量](形参列表){函数体};
f(实参列表)