当前位置: 首页 > news >正文

Lambda表达式

lambda 表达式是一种在代码中直接创建匿名函数(即没有名称的函数)的方法。它们特别适用于需要传递给算法或事件处理器的简短、一次性使用的函数。

基本语法

C++ lambda 表达式的基本语法如下:

[capture](parameters) -> return_type {// 函数体
};
解释:
  • [capture]:捕获列表,用于指定 lambda 表达式中可以访问的外部变量。捕获方式包括值捕获(=)、引用捕获(&),或者显式指定捕获的变量。
  • (parameters):参数列表,与普通函数的参数列表类似。
  • -> return_type:可选的返回类型声明,如果省略,编译器会自动推导返回类型。
  • {}:函数体,包含实际执行的代码。

示例

以下是一些常见的示例:

无参数、无返回值的 lambda 表达式:
auto myLambda = []() {std::cout << "Hello, World!" << std::endl;
};myLambda();  // 输出:Hello, World!

 有参数、有返回值的 lambda 表达式:

auto add = [](int a, int b) -> int {return a + b;
};int result = add(3, 4);  // result 为 7

使用捕获列表:

int x = 10;
auto printX = [x]() {std::cout << "x = " << x << std::endl;
};printX();  // 输出:x = 10

 在这个例子中,x 被值捕获到 lambda 表达式中,即使之后 x 的值发生变化,lambda 表达式中 x 的值仍然保持不变。

C++ lambda 表达式功能强大,常用于 STL 算法中。例如:

std::vector<int> numbers = {1, 2, 3, 4, 5};
int sum = 0;std::for_each(numbers.begin(), numbers.end(), [&sum](int n) {sum += n;
});std::cout << "Sum = " << sum << std::endl;  // 输出:Sum = 15

在这个例子中,sum 通过引用捕获,lambda 表达式会将每个数字累加到 sum 中。


http://www.mrgr.cn/news/9055.html

相关文章:

  • wegege
  • 使用IDEA开发Java Web项目
  • Linux日志排查
  • .net maui安卓开发中使用明文传输(一)
  • 【Remi Pi使用HDMI屏幕显示QT界面】将QT工程在Ubuntu虚拟机交叉编译好拷贝到开发板并运行
  • Linux 命令集合
  • UE5 蓝图 计算当前时间段
  • 【数据结构】PTA 求链表的倒数第m个元素 C语言
  • PyTorch 基础学习(13)- 混合精度训练
  • 异步编排利器:使用CompletableFuture优化服务页面响应速度
  • 一文搞懂不确定性原理
  • 单例模式的实现
  • Github 2024-08-20 Python开源项目日报 Top10
  • python循环访问excel的某一列从某行开始的内容
  • 前端网格布局display: grid;
  • C++函数重载(二)
  • RocketMQ~刷盘机制、主从复制方式、存储机制
  • 什么是主机监控审计系统?三款热门计算机监控审计系统推荐!
  • ZooKeeper 的特性及其在分布式系统中的配置中心的应用
  • 详细描述Android中的四大组件