lambda表达式:
lambda表达式写法:
lambda表达式是C++一种匿名函数的方式,不需要单独命名函数
//下面是lambda表达式的写法
[capture clause](parameters) -> return _type
{
// capture caluse 捕获的列表,可以为空
// parameters 参数列表
// return _type 返回值的类型
//中括号中就是函数的表达式
}
下面是一个实例:
//下面是一个lambda表达式的案例
auto add= [](int a,int b)
{
return a+b;
};
int sum = add(20,30);
cout<<"两数相加之和为:"<<sum<<endl;
定义了一个add的表达式来接收函数,并且返回a+b;
我们可以直接使用add这个表达式,最后输出两数相加的和
这只是一种匿名函数的表达式的写法,具体应用场景我还没用到过,不过也挺有意思的
lambda表达式捕获列表:
1.中扩号中的:=
代表捕获所有变量,但是不可修改变量的数值
2.中括号中的:&
相当于取变量地址,所有的变量都可以修改再使用
3.指定捕获:
直接写入想要捕获的变量:
函数指针:
1.函数指针的定义方式:
return_type(*p)(parameter_type);
return_type:函数返回类型
p:指针名字
parameter_type:所有参数类型
2.函数指针的调用:
//将一个相加的函数指针作为一个函数的参数
int ADD(int a,int b,bool(*add)(int,int))