C++初学者指南-6.函数对象--lambdas(基础)

C++初学者指南-6.函数对象–lambdas(基础)

文章目录

  • C++初学者指南-6.函数对象--lambdas(基础)
    • 提醒:函数类和对象
    • Lambdas
    • 变量捕获
    • 保存闭包
    • 通用Lambdas (C++14)
    • 广义捕获 (C++14)
    • 相关内容

幻灯片

提醒:函数类和对象

  • 类至少提供一个operator () (…) {…} 函数
  • 能像一个函数一样被调用
  • 可以是有状态的(不像函数)
    在这里插入图片描述

Lambdas

  • 编译器生成的函数对象
  • 可以像匿名函数一样使用
    在这里插入图片描述
    用分组排序算法partition进行示例
    下图为partition算法使用区间的示例
    在这里插入图片描述
    下图为partition算法使用lambda的示例
    在这里插入图片描述

变量捕获

  • lambda类 = 编译器生成的类
  • 闭包(closure) = lambda类的实例(对象)
  • 我们可以“捕捉”周围范围的变量:
    [=] (…) {…} 按值捕获变量
    在这里插入图片描述
    变量捕获:
  • [=] (…) {…} 按值捕获
  • [&] (…) {…} 按引用捕获
  • [x, &y] (…) {…} x按值捕获,y按引用捕获
  • [=, &y] (…) {…} 所有都按值捕获,除了y
    在这里插入图片描述

保存闭包

闭包的类型名称只有编译器知道。
=> 如果你需要保存闭包,使用 auto。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通用Lambdas (C++14)

在这里插入图片描述
在这里插入图片描述

广义捕获 (C++14)

对如下有用:

  • 向闭包添加新的成员变量
  • 将对象移动到闭包中
    在这里插入图片描述

相关内容

函数对象
视频:Back to Basics: Lambdas  (Nicolai Josuttis, 2021)
视频:Lambdas in Action  (CopperSpice C++)
视频:Lambdas in C++  (CopperSpice C++)

附上原文链接
如果文章对您有用,请随手点个赞,谢谢!^_^

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx制作下载站点

使用nginx制作一个类似nginx官网的下载站点 如何制作一个下载站点,首先需要ngx_http_autoindex_module模块 该模块处理以斜杠(“/”)结尾的请求,并生成目录列表。 nginx编译的时候会自动加载该模块,但是该模块默认是关闭的,需要使用下来指令…

苦学Opencv的第九天:模板匹配

Python OpenCV入门到精通学习日记:模板匹配 前言 模板匹配是一种最原始、最基本的识别方法,可以在原始图像中寻找特定图像的位置。模板匹配经常应用于简单的图像查找场景中,例如,在集体合照中找到某个人的位置。 #mermaid-svg-N…

一个网站的js与cookie,页面缓存清理方案

浏览器在使用过程中会产生大量的缓存,Edge浏览器如何清理缓存?下面是Edge浏览器清理缓存的操作步骤。 页面缓存清理方案 打开开发者模式点击应用程序 按顺序点击即可 js缓存问题分析 修改完 js文件中的代码后,页面刷新好几次并没有重新加载…

软件测试---Linux

Linux命令使用:为了将来工作中与服务器设备进行交互而准备的技能(远程连接/命令的使用)数据库的使用:MySQL,除了查询动作需要重点掌握以外,其他操作了解即可什么是虚拟机 通过虚拟化技术,在电脑…

Leetcode—263. 丑数【简单】

2024每日刷题&#xff08;147&#xff09; Leetcode—263. 丑数 实现代码 class Solution { public:bool isUgly(int n) {if(n < 0) {return false;}for(const int prime: {2, 3, 5}) {while(n % prime 0) {n / prime;}}return n 1;} };运行结果 之后我会持续更新&#…

区块链在艺术市场中的创新:数字艺术品的溯源与版权保护

随着数字技术的迅猛发展&#xff0c;数字艺术品正逐渐成为艺术市场的重要组成部分。然而&#xff0c;数字艺术品的复制和版权问题日益突出&#xff0c;传统的版权管理方式面临挑战。区块链技术作为一种去中心化的分布式账本技术&#xff0c;为解决这些问题提供了新的可能性。本…

AJAX-XMLHttpRequest 详解

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 前言 XMLHttpRequest 概述 主要用途 工作流程 示例代码 GET 请求示例 POST 请求示例 注意事项 工作…

Hive3:Centos7环境部署Hive服务

一、安装说明 1、Hadoop集群情况 3台机器&#xff1a;4G2C、2G2C、2G2C 安装教程&#xff1a;Centos7环境安装Hadoop集群 2、安装MySQL&#xff0c;用于存储Hive的元数据 在102机器上安装MySQL 安装MySQL使用服务器的root账号 3、最后安装Hive 安装hive过程使用服务器的atgu…

如何录制电脑内部声音?全方位介绍电脑录音软件:8款在线录音!(2024重新整理)

如何录制电脑内部声音&#xff1f;不管是娱乐圈还是现实生活&#xff0c;【录音】这个功能的重要性不言而喻。而电脑录音已在影视配音、音视频剪辑、会议记录、在线教育等多个领域发光发热&#xff01; 本文将为您推荐8款电脑录音软件&#xff0c;并详细介绍电脑录音的多种方式…

Redis-jenkins

1. 什么是jenkins Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。 2. 为什么使用jenkins 使用 Jenkins之前使用 Jenkins之…

深度解析Linux-C——函数和内存管理

目录 函数指针&#xff1a; 指针函数&#xff1a; 参数为指针的函数&#xff1a; 参数为数组的函数&#xff1a; C语言内存管理 stdlib.h头文件常用函数介绍 1、局部变量 2、全局变量 3、 堆空间变量 4、静态变量 5、常量 函数指针&#xff1a; 指向函数的指针&#…

鸿蒙APP架构及开发入门

1.鸿蒙系统 1.1 什么是鸿蒙 鸿蒙是一款面向万物互联时代的、全新的分布式操作系统。 在传统的单设备系统能力基础上&#xff0c;鸿蒙提出了基于同一套系统能力、适配多种终端形态的分布式理念&#xff0c;能够支持手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、…

《程序猿入职必会(4) · Vue 完成 CURD 案例 》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

lua 游戏架构 之 游戏 AI (九)ai_mgr Ai管理

定义ai_mgr的类&#xff0c;用于管理游戏中实体的AI组件。 先定义 AI行为枚举和优先级&#xff1a; lua 游戏架构 之 游戏 AI &#xff08;八&#xff09;ai_tbl 行为和优先级-CSDN博客https://blog.csdn.net/heyuchang666/article/details/140712839?spm1001.2014.3001.55…

天工三维实景建软件 GodWork 3D 7.24 软件下载License使用

1、天工三维实景建软件GodWork 3D 7.24,城市级实景三维数据生产面临大数据量空三稳定解算的难题。受限于目前主流软件的解算能力与效率&#xff0c;生产单位常采用分块处理方法&#xff0c;接边处精度需要有足够的控制点来保证&#xff0c;这增加了外业布设控制点与内业的工作量…

巴斯勒相机(Basler) ACE2 dart 系列说明和软件

巴斯勒相机(Basler) ACE2 dart 系列说明和软件

开始尝试从0写一个项目--后端(三)

器材管理 和员工管理基本一致&#xff0c;就不赘述&#xff0c;展示代码为主 新增器材 表设计&#xff1a; 字段名 数据类型 说明 备注 id bigint 主键 自增 name varchar(32) 器材名字 img varchar(255) 图片 number BIGINT 器材数量 comment VARC…

Redis底层数据结构的实现

文章目录 1、Redis数据结构1.1 动态字符串1.2 intset1.3 Dict1.4 ZipList1.5 ZipList的连锁更新问题1.6 QuickList1.7 SkipList1.8 RedisObject 2、五种数据类型2.1 String2.2 List2.3 Set2.4 ZSET2.5 Hash 1、Redis数据结构 1.1 动态字符串 Redis中保存的Key是字符串&#xf…

php收银系统源码-收银员操作权限

收银系统是很多门店&#xff0c;尤其是连锁门店营业的必备工具&#xff0c;收银员每天需要通过收银系统记录商品的售卖数量&#xff0c;以及收款&#xff0c;会员开卡&#xff0c;核销订单等工作。但很多门店都不希望给收银员太高的权限&#xff0c;自然就离不开收银员的权限管…

windows server服务器/linux服务器离线安装pandas

windows server服务器/linux服务器离线安装pandas pypi官网下载whl文件速度较慢&#xff0c;推荐使用国内的镜像源来下载&#xff0c;镜像源地址为 清华大学 &#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple/ 阿里云&#xff1a;http://mirrors.aliyun.com/pypi/simple…