【五】【QT开发应用】C++中lambda表达式,值捕获,引用捕获,隐式捕获,lambda表达式的返回类型

Lambda表达式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

复盘

Lambda表达式

Lambda 表达式是 C++11 引入的一种特性,用于定义匿名函数。它使得可以在代码中方便地定义和使用小段函数,而无需专门定义一个命名的函数。这在需要传递函数作为参数或者需要定义内联函数时非常有用。
基本语法

基本语法

一个 lambda 表达式的基本语法如下:

[capture](parameters) -> return_type {
    // function body
};

capture:捕获列表,指定 lambda 表达式可以访问哪些外部变量。
parameters:参数列表,与普通函数的参数列表类似。
return_type:返回类型,可以省略。如果省略,编译器会根据函数体中的 return 语句自动推断。
function body:函数体,包含实际的代码逻辑。

捕获列表

捕获列表

捕获列表用于指定 lambda 表达式可以访问哪些外部变量。有几种不同的捕获方式:
值捕获:通过值捕获的变量会在创建 lambda 表达式时复制一份,lambda 表达式内部使用的是这份复制的值,而不是原始变量。

int value = 100;
auto f = [value]() {
    return value + 1;
};

引用捕获

引用捕获:通过引用捕获的变量在 lambda 表达式内部使用的是原始变量,因此可以修改原始变量。

int value = 100;
auto f = [&value]() {
    value++;
};

隐式捕获

隐式捕获:可以使用 = 或 & 来隐式捕获所有在 lambda 表达式范围内可访问的外部变量。= 表示值捕获,& 表示引用捕获。

int value = 100;
auto f1 = [=]() {
    return value + 1; // 隐式值捕获
};
auto f2 = [&]() {
    value++; // 隐式引用捕获
};

结尾

最后,感谢您阅读我的文章,希望这些内容能够对您有所启发和帮助。如果您有任何问题或想要分享您的观点,请随时在评论区留言。
同时,不要忘记订阅我的博客以获取更多有趣的内容。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。
谢谢您的支持,期待与您在下一篇文章中再次相遇!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妖精七七_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值