【c++】Lambda表达式

news/2024/10/17 18:29:46/

Lambda表达式

Lambda表达式是C++中的匿名函数,允许你在需要时定义和使用小型函数。

语法

Lambda表达式的基本语法如下:

scssCopy code[捕获列表](参数列表) -> 返回类型 {// Lambda函数体
}
  • 捕获列表定义了Lambda表达式如何访问外部变量。
  • 参数列表包含了Lambda函数的参数。
  • 返回类型可以显式指定,也可以自动推断。

在捕获列表中:

  • 引用捕获(使用&符号)表示可以修改外部变量。
  • 非引用捕获(不使用&符号)表示不能修改外部变量。

示例

cppCopy code// Lambda表达式没有捕获和参数,返回类型由编译器推断
auto lambda1 = [] { return 42; };// Lambda表达式捕获外部变量x,参数列表为空
int x = 10;
auto lambda2 = [x] { return x * 2; };// Lambda表达式捕获外部变量y通过引用,参数列表有一个参数
int y = 5;
auto lambda3 = [&y](int z) { return y + z; };

使用方式

Lambda表达式可以像函数指针一样使用,先定义然后调用:

cppCopy code// Lambda表达式捕获外部变量x,参数列表为空
int x = 10;
auto lambda2 = [x] { return x * 2; };// 调用Lambda表达式并将结果存储在变量result中
int result = lambda2();

也可以直接使用:

cppCopy codeint x = 10;
int num = [x] { return x + 1; }(); // 11

http://www.ppmy.cn/news/1115831.html

相关文章

基于安卓Java试题库在线考试系统uniapp 微信小程序

本文首先分析了题库app应用程序的需求,从系统开发环境、系统目标、设计流程、功能设计等几个方面对系统进行了系统设计。开发出本题库app,主要实现了学生、教师、测试卷、试题、考试等。总体设计主要包括系统功能设计、该系统里充分综合应用Mysql数据库、…

R语言用逻辑回归预测BRFSS中风数据、方差分析anova、ROC曲线AUC、可视化探索

全文链接:https://tecdat.cn/?p33659 行为风险因素监测系统(BRFSS)是一项年度电话调查。BRFSS旨在确定成年人口中的风险因素并报告新兴趋势(点击文末“阅读原文”获取完整代码数据)。 相关视频 例如,调查对…

Linux ____02、Linux开关机、目录介绍、文件目录相关命令(常用命令)

Linux开关机、目录介绍、目录相关命令(常用命令) 一、Linux开关机二、目录介绍三、目录相关命令(常用命令)1、ls命令,列出目录内容2、cd命令,切换目录;pwd,查看当前工作路径3、mkdi…

大模型能力

Task02 大模型能力 目录 prompt技巧公式LangChain 什么是LangChain如何使用LangChain?LangChain的模型LangChain 的主要特点示例 prompt技巧公式 prompt (角色) 任务 要求 提示 LangChain 什么是LangChain LangChain是一个强大的框架,旨在帮…

第8章 MySQL的数据目录

8.1 数据库和文件系统的关系 像 InnoDB 、 MyISAM 这样的存储引擎都是把表存储在磁盘上的,而操作系统用来管理磁盘的又被称为 文件系统 ,所以用专业一点的话来表述就是:像 InnoDB 、 MyISAM 这样的存储引擎都是把表存储在文件系统上的。当我…

用无代码搭建数据中台,竟做到如此丝滑

文章目录 需求背景系统介绍配置说明1 菜单导航2 系统自带组件导入页面(1)数据集成相关组件(2)数据服务相关组件 3 由系统组件路径添加页面(1)数据资产管理(2)数据标准管理&#xff0…

《优化接口设计的思路》系列:第三篇—留下用户调用接口的痕迹

系列文章导航 《优化接口设计的思路》系列:第一篇—接口参数的一些弯弯绕绕 《优化接口设计的思路》系列:第二篇—接口用户上下文的设计与实现 《优化接口设计的思路》系列:第三篇—留下用户调用接口的痕迹 前言 大家好!我是sum…

在 Ubuntu 20.04 上,将 Subversion 从默认的 1.13.0 降级到 1.9.7。 解决svn无法保存密码问题

在 Ubuntu 20.04 上,如果您使用标准 apt-get 安装 subversion,则默认情况下将安装 subversion 1.13.0。该版本svn无法在本地自动保存明文密码。原因是 1.12版本之后默认禁用在本地保存明文密码。 Apache Subversion 1.12 Release Notes : On Unix-like…