lambda在C++中的应用

本文介绍了lambda表达式的概念及其构成部分,包括捕获字段、变量列表、异常设定等内容,并通过一个具体的示例展示了lambda表达式的使用方法。

lambda出现的原因是有时候使用简单的函数时如果定义一个相应的函数进行调用会显得比较麻烦,既要函数定义也需要函数声明(如果需要的话),这样对于简单函数的代码量太大,这个时候就可以使用lambda,它定义了一个匿名的函数,只调用一次。

如图,lambda表达式由下面几个部分构成:


  1. lambda-introducer (捕获字段)----------------[]内可以是=或者&,如果是=,表示按值传递,如果是&,表示是引用
  2. lambda-parameter-declaration-list (变量列表)--------------你需要传递的参数
  3. mutable-specification (捕获的变量可否修改)-------变量是否可以修改
  4. exception-specification (异常设定)------------异常的设置
  5. lambda-return-type-clause (返回类型)-----------返回的值的类型
  6. compound-statement (函数体)----------------函数体

  7. 举个例子
  8. int z=[=](int x,int y) mutable throw()->int { x=y; return x*y;}(7,8);那么输出的结果是64,因为在函数中7,8分别表示函数参数列表中的x和y,在函数中x=y,那么此时的x=y=8,因此结果返回为x*x为64。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值