C++11之lambda的初探

1 Lambda结构
Lambda是C++11中新增的机制,它其实就是匿名函数,任何可以在用函数指针或者函数对象的地方就可以用Lambda表达式,它的结构如下所示
[](parameter)mutable throw() -> Type{
//body
}


[] 是capture列表,parameter是函数参数,mutable让传值的捕捉能够改变其值,throw()是抛出异常,->Type是函数返回值,{}是函数体


2 关于capture
首先capture 可以有3种情况 default, list, default + list,下面一一介绍
《1》default
它表达的是捕捉列表中所有对象的默认传递情况
有[&],[=]两种形式,[&] 表示所有的变量都是以引用传递,那么所有变量都可以在{}中被修改,并且调用结束后,修改被保存下来。
[=]表示所有的变量都是传值调用,并且默认情况下传值调用的变量在{}中不能被修改,如果要修改,则必须在在Lambda中添加mutable关键字。
《2》list
就是把所有变量一个一个加入到列表中,加入的方式可以有传引用方式,传值方式,或者混合,如下所示:
[x,y],[&x,&y],[&x,y]
list中一种特殊情况就是[],他表示不传递任何变量,所以在{}中不
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值