C++面试八股自用每日一题DAY4

lambda表达式是什么

lambda表达式:一个可调用的代码单元,可以理解成匿名的内联函数。

lambda表达式的具体形式包含捕获列表(capture list)、返回类型(return type)、参数列表(parameter list)、函数体(function body)。

捕获列表是lambda表达式所在函数中定义的局部变量列表,通常为空。返回类型、参数列表、函数体都和普通函数中一样定义。

lambda表达式代码形式:[ capture list ]( parameter list ) -> return type { function body };

要点1:lambda必须使用尾置返回来指定类型。尾置返回是跟在形参列表后,加上-> type表示。任何函数的定义都能使用尾置返回类型,但一般用在返回类型比较复杂的函数上比较有效,例如返回数组指针等。

要点2:lambda可以忽略指定返回类型和参数列表,但必须包含函数体和捕获列表。形如:[ ]{ return 2 }; 并且调用形式和普通函数调用一样。

捕获列表分为显式捕获和隐式捕获

显式捕获形式                                                                                     

ex1                                                                                                   

隐式捕获形式

ex2

要点3:如果想修改一个被捕获的变量的值可以使用mutable关键字。

ex3

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值