lambda入门
在C++中,Lambda表达式是一种用于创建匿名函数的便捷语法。Lambda表达式允许我们在需要函数对象的地方定义和使用简短的函数,而无需 显式定义具名函数
表达式的语法
在编写lambda表达式的时候,可以忽略参数列表和返回值类型,但是前后的捕获列表和函数体必须包含, 捕获列表的中括号不能省略,编译根据它来识别后面是否是lambda表达式 ,并且它还有一个作用是能够让lambda的函数体访问它所处作用域的成员。
//语法
[捕获列表](参数列表)->返回值类型{
函数体}
示例1
[](int a ,int b)->int{
return a + b ;} ; //一个简单的加法
示例2
如果编译器能推断出来类型。,那么 ->int 也可以省略掉
[](int a ,int b){
return a + b ;} ;
示例3
如果不需要参数,那么参数列表页可以忽略。
至此不能再精简了。
[]{
return 3 + 5 ;};
示例4
这是最精简的lambda表达式了,不过没有任何用处,等于一个空函数,没有函数体代码
[]{
};
lambda的使用
lambda表达式 定义出来并不会自己调用,需要手动调用。 如下面所示的,一个加法的案例
使用变量接收,然后再调用
#include <iostream>
using namespace std;
int main