c++中的Lambda函数

  • Lambda表达式就是用于创建匿名函数的,是c++11新增特性。在标准c++库中有一个常用算法的库,其中提供了许多算法函数,比如sort()和find()。这些函数通常需要提供一个“谓词函数”,所谓谓词函数,就是进行一个操作用的临时函数。比如find()需要一个谓词,用于查找元素满足的条件,能够满足函数的元素才会被查找出来。这样的谓词函数,使用临时的匿名函数,既可以减少函数数量,又会让代码变得清晰易读。

  • Lambda表达式使用一对[]方括号作为开始的标识,然后()小括号内接受参数,最后{}大括号内写一个return语句

     [](int a,int b){ return a>b }
    
  • 当lambda表达式语句很简单,能自动推断返回值类型;但如果想显式指定返回值类型,可以这样:

     [](int a, int b) -> int (return a>b)
    
  • 当我们想引用一个lambda表达式时,可以使用auto关键字

      auto lambda=[](int a, int b) -> int (return a>b)
    
  • []称为lambda引入符,还有其它许多引入符如下:

引入符作用
[]不捕获任何外部变量
[=]以值的形式捕获所有外部变量
[&]以引用形式捕获所有外部变量
[=,&y]y以引用形式捕获,其余变量以传值形式捕获
[x,&y]x以传值形式捕获,y以引用形式 捕获
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值