lambda表达式简单介绍

lambda表达式的标准格式

参考 https://www.cnblogs.com/DswCnblog/p/5629165.html

[捕获外部变量列表] (函数参数列表) mutable 或 exception 声明 -> 返回值类型 {函数体}

各项含义:

capture list:捕获外部变量列表 --- 
params list:形参列表
mutable指示符:用来说用是否可以修改捕获的变量
exception:异常设定
return type:返回类型
function body:函数体

1. 捕获外部变量

Lambda表达式可以使用其可见范围内的外部变量,但必须明确声明(明确声明哪些外部变量可以被该Lambda表达式使用)。那么,在哪里指定这些外部变量呢?Lambda表达式通过在最前面的方括号[]来明确指明其内部可以访问的外部变量,这一过程也称过Lambda表达式“捕获”了外部变量。

一言以蔽之——设定了lambda表达式的视力范围

具体捕获方式参考:https://www.cnblogs.com/DswCnblog/p/5629165.html

一般是引用方式捕获:

int a = 123;
auto f = [&a] { cout << a << endl; }; 

在Lambda表达式中,如果以传值方式捕获外部变量,则函数体中不能修改该外部变量,否则会引发编译错误。那么有没有办法可以修改值捕获的外部变量呢?这是就需要使用mutable关键字,该关键字用以说明表达式体内的代码可以修改值捕获的变量,示例:

int a = 123;
auto f = [a]()mutable { cout << ++a; }; // 不会报错

2. 函数参数列表

这里有几点要求:

1)参数列表中不能有默认参数
2)不支持可变参数
3)所有参数必须有参数名

对可变参数感兴趣可参考:https://blog.csdn.net/iteye_11306/article/details/82004551

常用lambda格式:
在这里插入图片描述

别忘了,lambda表达式要使用,用括号(参数)调用。注意参数要对应2.函数参数列表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值