首页 存档 技术 查看内容

如何利用 C 的 Lambda 表达式提升 Qt 代码

2018-3-30 13:00 |来自: 互联网 443 0

摘要: Lambda 表达式是在 C 11 中加入的 C 特性。这篇文章中我们将看到如何用 Lambda 表达式来简化 Qt 代码。Lambda 很强大,但也要小心它带来的陷阱。 首先,什么是 Labmda 表达式? Lambda 表达式是在某个函数中直接 ...


Lambda 表达式是在 C 11 中加入的 C 特性。这篇文章中我们将看到如何用 Lambda 表达式来简化 Qt 代码。Lambda 很强大,但也要小心它带来的陷阱。


首先,什么是 Labmda 表达式?


Lambda 表达式是在某个函数中直接定义的匿名函数。它可以用于任何需要传递函数指针的地方。

Lambda 表达式的语法如下:

现在先忽略 “获取变量” 这部分。下面是一个简单的 Lambda,用于递增一个数:

我们可以把这个 Lambda 用于像std::transform()这样的函数,来为 vector 的每一个元素增值:

打印结果:

获取变量

Lambda 表达式可以通过 “获取” 来使用当前作用域中的变量。下面是用 Lambda 来对 vector 求和的一个示例。

你可以看到,我们获取了本地变量 sum,所以可以在 Lambda 内部使用它。sum 加了前缀

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部