C++ lamda表达式

文章目录

  • 概述
    • 1.捕获子句:
    • 2.参数列表
    • 3.箭头
    • 4.函数体:
    • 例子
  • 小结

概述

先来看下基础概念。lamda表达式的一般语法如下:

[capture] (parameters) -> return type { function body }

来分析下lamda表达式的基本组成部分,如下几点。

1.捕获子句:

使用[capture]来捕获外部变量。可以是:

  1. [=] : 通过值捕获所有外部变量
  2. [&] :通过引用捕获所有外部变量
  3. [variable] :通过值捕获特定变量
  4. [&variable] :通过引用捕获特定变量

2.参数列表

Lambda 表达式可以有零个或多个参数,格式与普通函数参数列表相同。

3.箭头

使用 -> 来分隔参数列表和函数体。如果指定了返回类型,则放在箭头之前。

4.函数体:

Lambda 表达式的主体,可以包含一条语句或一个代码块。

例子

来个简单的例子:

auto Add = [](int a, int b) {return a + b;
};
std::cout << Add(1, 2) << std::endl;

再来看下带捕获参数的例子,

int c = 12;
int d = 30;
auto Add = [c, d](int a, int b)->int {cout << "d = " << d  << endl;return c;
};
d = 20;
std::cout << Add(1, 2) << std::endl;

下边这个带的是捕获引用的,

int c = 12;
int d = 30;
auto Add = [&d](int &a, int &b)->int {a = 11;b = 12;cout << "d = " << d  << endl;return a + b;
};
d = 20;
std::cout << Add(c, d) << std::endl;

小结

本篇主要写了lamda表达式的例子,详细的描述了lamda的语法规则以及使用方式,相信在开发中经常遇到。有兴趣,来一起学习学习。好了,本篇结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Java构建企业级微服务架构的策略与挑战

使用Java构建企业级微服务架构的策略与挑战 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 什么是企业级微服务架构&#xff1f; 企业级微服务架构是一种通过…

MySQL索引怎么优化

索引优化无非就是两点&#xff1a; 把SQL的写法进行优化&#xff0c;对于无法应用索引&#xff0c;或导致出现大数据量检索的语句&#xff0c;改为精准匹配的语句。对于合适的字段上建立索引&#xff0c;确保经常作为查询条件的字段&#xff0c;可以命中索引去检索数据。 连接…

同步时钟:北斗/GPS卫星、电信基站、NTP以太网校时方式的区别

同步时钟是保证各设备时间统一的重要装置&#xff0c;广泛应用于电力、通信、金融、学校、医院、地铁等多个领域。目前&#xff0c;常用的同步时钟方式包括&#xff1a;北斗/GPS卫星、电信基站、NTP以太网等。 下面跟着小编来看一下这些校时方式及他们的区别吧。 1. 北斗/GP…

另一种方式编译ZYNQ镜像

文章目录 1.创建Petalinux工程&#xff0c;生成BOOT.BIN创建Petalinux工程配置Petalinux工程生成BOOT.BIN 2.生成设备树文件3.编译kernel添加设备树文件defconfig配置menuconfig 配置编译内核源码编译设备树 4.编译rootfs5.启动开发板制作SD启动卡拷贝镜像到FAT分区将根文件系统…

Windows 安装docker详细步骤说明

文章目录 1. 检查系统要求2. 启用硬件虚拟化3. 启用Hyper-V和容器功能4. 下载并安装Docker Desktop5. 配置Docker Desktop6. 安装WSL 27. 验证Docker安装8. 常见问题排查9. 重点说明参考资源 在Windows上安装Docker的详细步骤如下&#xff1a; 1. 检查系统要求 确保您的Window…

数据库断言-数据库连接池

原因&#xff1a;现在的代码是单线程&#xff0c;如果遇到大并发的话就会崩溃&#xff0c;数据库查询就查不过来 措施&#xff1a;需要建立数据库连接池&#xff0c;可以设置连接池的数量 什么是大并发&#xff1a;很多客户端在idea写的程序和数据库建立连接 步骤&#xff1…

性能测试与负载均衡:保证Java应用的稳定性

性能测试与负载均衡&#xff1a;保证Java应用的稳定性 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 在当今高度竞争的软件市场中&#xff0c;Java应用…

ubuntu 22.04启用rc.local来实现开机启动调用某些脚本

Ubuntu 22.04 中rc.local 服务并没有启用&#xff0c;手动配置的步骤如下 1、检查rc-local.service服务是否已经配置开机启动 rootmydbserver:~# systemctl is-enabled rc-local.service static2、rc-local.service文件增加2行 rootmydbserver:~# vim /lib/systemd/system/r…

SAP Build 3-调用SAP BAPI和调用S4HC API

1. 调用SAP BAPI 1.1 前提 项目已创建 SAP环境登录正常 1.2 引入BAPI SDK 商店中下载BAPI SDK Process中导入BAPI SDK 1.3 新建action group 新建action group时&#xff0c;会要求填写SAP登录信息&#xff0c;根据连接类型分为SSO&#xff0c;Basic和Custom 如果选择SS…

SAP配置发布WebService接口并调用(超级详细)

文章目录 前言一、案例介绍/笔者需求二、WebService是什么&#xff1f; a.传输协议 b.数据协议 c.WSDL d.UDDI 三、WebService 和 WebApi 的区别以及优缺点 a.主要区别 b.优缺点 四、SAP如何发布一个webser…

SpringCloud Gateway 网关获取或修改接口响应数据

文章目录 前言一、获取响应数据并打印 前言 我们的网关在之前只记录了接口请求日志&#xff0c;响应日志是没有做记录的&#xff0c;在后续别人对接我们开放平台时出现了一些问题没法确认当时的一个数值状态&#xff0c;照成了很多不必要的麻烦&#xff0c;后来决定在网关添加上…

C++编程(六)运算符重载

文章目录 一、概念1. 左值和右值2. 运算符重载3. 可以实现重载的运算符和不可以实现重载的运算符 二、双目运算符&#xff08;一&#xff09;说明&#xff08;二&#xff09;实现1. 注意点2. 算术运算符成员函数版本全局函数版本 3. 关系运算符成员函数版本全局函数版本 三、赋…

技术反诈指南丨央视报了!基于“AI换脸”的新型电信网络诈骗猖獗

目录 利用“AI换脸”技术的诈骗 技术上防范新型电信网络诈骗 内蒙古鄂尔多斯市居民李女士近日遭遇了一起新型电信网络诈骗案。诈骗团伙利用“AI换脸”技术&#xff0c;合成了与李女士老同学相似的视频通话&#xff0c;以此作为诈骗的关键手段&#xff0c;成功骗取李女士信任。 …

【linux】使用vnc连接远程桌面,需要安装tigervnc,并在服务端期待,然后在客户端使用tigervnc-viewer进行连接即可

vnc 远程设置方法 需要服务端安装软件&#xff1a; sudo apt install -y tigervnc-standalone-server# 先配置密码使用&#xff1a; tightvncpasswd启动服务&#xff0c;禁用本机 vncserver -localhost no -geometry 1924x1080 :1客户端安装软件&#xff1a; sudo apt insta…

小红书起号运营01

上次我们详细的分享了小红书怎么起号,说直白点就是,怎么开始行动,让你的想法落地。 这次的分享前提是你已经将你的发展路线也就是定位已经有了思路。 比如以现在的最火的或者最容易入门的母婴系列、装修系列以主要发展路线。 或者做一个技能博主:摄影博主、修家电等等 …

1974. 使用特殊打字机键入单词的最少时间

关键点&#xff1a; 无论数组的开头第一位是什么&#xff0c;总是从a开始的&#xff0c;从第一个字母向后走的时候有顺时针和逆时针&#xff0c;取最小值当从第一个字母开始走的时候&#xff0c;用当前位置替换a的作用 class Solution:def minTimeToType(self, word: str) -&g…

C#面:请写出C#中的单例模式

单例模式是一种常用的设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。 以下是一种常见的C#中的单例模式实现方式&#xff1a; public class Singleton {private static Singleton instance;private static readonly object loc…

实现资产优化管理:智慧校园资产分类功能解析

在构建智慧校园的过程中&#xff0c;细致入微的资产管理是确保教育资源高效运作的关键一环&#xff0c;而资产分类功能则扮演着举足轻重的角色。系统通过精心设计的分类体系&#xff0c;将校园内的各类资产&#xff0c;从昂贵的教学设备到日常使用的办公物资&#xff0c;乃至无…

嵌入式linux系统中动态链接库实现详解

大家好,linux系统中动态库是如何实现相互链接的?今天简单聊聊动态链接库的实现原理。 假设有这样两段代码,第一段代码定义了一个全量变量a以及函数foo,函数foo中引用了下一段代码中定义的全局变量b。 第二段代码定义了全局变量b以及main函数,同时在main函数中调用了第一个…

中英双语介绍美国的州:伊利诺伊州(Illinois)

中文版 伊利诺伊州&#xff08;Illinois&#xff09;位于美国中西部&#xff0c;是一个人口众多、经济发达的州。以下是对伊利诺伊州各方面的详细介绍&#xff1a; 发音&#xff1a; IIIinois&#xff1a;英 [ˌɪlɪˈnɔɪ] 人口 截至2020年&#xff0c;美国人口普查数据…