C++:lambda表达式和函数指针

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))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值