lambda表达式小记

lambda表达式

前言

lambda表达式也叫匿名函数.没有函数名的函数.
是C++11新增的特性.
可以更简洁的创建和调用,
个人理解像是把代码块当作了函数,让代码复用性更强


语法:

[capture list] (parameter list) specifiers exception -> type { function body }//标准语法
[捕获变量]	(参数列表)	->返回类型	{函数主体}
[](int x, int y){ return x + y; }//简易用法

1.捕获变量

[capture list]是捕获列表, 为空表示不捕获外围的变量 .
捕获变量加& 有引用的特性.可以在主体内修改该变量
不加& 就是按值捕获,等价于 = .也可以省略等号
多个外围变量用 逗号 间隔 ,=和&不光影响捕获列表,还影响参数列表的实参
在class中使用匿名函数还可以捕获this .在c++17后可以使用 [*this]按值捕获该实例
c++14之后,可以在捕获语句中添加新的变量.类似于for循环的int i=0;
c++14的另一个新增 参数列表支持auto类型

2.其他

(parameter list)是参数列表,没有参数的话可以为空.
specifiers 可选限定符,例: mutable可以在函数体内修改按值捕获的变量.
exception 可选异常说明符,指定lambda是否可以抛出异常
-> type是返回值类型,如果没有返回值可以忽略包括箭头在内的整个部分
{ function body }是表达式的函数体,在应用中必填。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值