Lambda表达式【C++语法】

C++的Lambda表达式是一种匿名函数,用于简化代码和处理回调。其语法包括捕获列表、参数列表、可选的mutable关键字和返回类型。捕获列表决定了如何获取外部变量,如按值或按引用。mutable关键字允许修改按值捕获的变量副本。返回类型可以由编译器推导,也可以显式指定。文章还提到了Lambda在排序等操作中的应用。
摘要由CSDN通过智能技术生成

C + +   L a m b d a 表达式 C++\ Lambda表达式 C++ Lambda表达式

一、Lambda表达式的完整语法
[capture list] (params list) mutable exception -> return type {function body}
单词含义
capture list捕获外部变量列表
params list形参列表
mutable用来说明是否可以修改捕获的变量
exception异常设定
return type返回类型
function body函数体
二、三种常见的lambda表达式格式
序号表达式
1[capture list] (params list) -> return type {function body}
2[capture list] (params list) {function body}
3[capture list] {function body}
三、capture list
capture list说明
[=]按值捕获所有外围变量
[&]按引用捕获所有外围变量
[=, &n] or [&n, =]按引用捕获n,按值捕获其它外围变量
[&, n] or [n, &]按值捕获n,按引用捕获其他外围变量

注意:不能以同一方式重复捕获某变量,例如[&, &n]是不合法的表达式。

四、mutable

mutable 关键字的作用是用来解除按值捕获的变量的 const 限制,从而允许在 lambda 函数体内修改被捕获的变量的值。

它与按引用捕获不一样,它修改的是捕获变量的拷贝,不会修改捕获的外围变量。(用的少)

五、return type

return type 可以省略,编译器会自动推导返回类型。

未省略 return type 时,-> 也不能省略。

六、简单应用

sort 函数中:

// sort 逆序排序
1------------------------
sort(a, a + n, [](int x, int y){
    return x > y;
});
    
2------------------------
auto f = [](int x, int y){
    return x > y;
};
sort(a, a + n, f);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值