【C++11:右值引用,列表初始化】

统一列表初始化:

构造函数的函数名与函数体之间增加一个列表,用于对成员初始化

在实例化对象时,支持单/多参数的隐式转化,同时也可以省略=符号,让代码更简洁 


右值的引用 

左值:

  • 左值与右值的重要区别就是能否取地址,左值可以取地址,右值不能取地址(这并不带表右值没有地址)
  • 左值,右值的底层都是指针

                                            

  • 左值不一定是一个值,也有可能是一个表达式
  • 在函数中,左值引用作为返回值,返回函数中的局部对象不可取,会返回一个野引用

右值:

  • &&能给右值取别名
  • 左值引用&不能给右值取别名,但加了const修饰可以
  • 右值的引用本身是左值
  • 函数调用返回的值,表达式返回的值等都叫右值
  • string("11111");
    func1(2);//函数调用,func1返回一个Int
    int x,y=1;
    x+y;

    纯右值&将亡值

  • 纯右值是内置类型
  • 将亡值是自定义类型

万能引用

完美转发forward:

在模板中,接受左值,就转化为左值,接受右值就转化为右值

移动构造和移动赋值

  • 在函数调用中,参数使用右值引用可以在函数调用结束后,转移资源,相比于传统的写法来讲,降低了代价,传统写法,函数调用结束后,会有一个拷贝构造和一个赋值拷贝,但右值引用直接解决了这一问题,只需要把资源转移即可。
  • 举例:人在快要失去生命时,会选择留下自己的器官造福别人,这里转移了将亡的人的器官资源,道理与右值引用的类似
  • 移动构造和移动赋值针对的是深拷贝的自定义类型对象。

lambda 

  • 参数列表可省略,返回值可省略
  • lambda就算内容一模一样,类型也是不一样的。lambda的底层是由仿函数实现的
  • lambda的捕捉列表
  1. 传值捕捉
  2. 传引用捕捉
  3. 混合捕捉

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

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

相关文章

全国产化飞腾模块BIOS下修复系统启动文件

1、背景介绍 全国产飞腾模块采用麒麟信安操作系统,当系统下面的grub.cfg文件被用户误操作导致无法启动时,可以在BIOS下通过U盘中备份的grub.cfg替换硬盘上原来的grub.cfg文件,从而实现启动。 2、操作步骤 首先进入BIOS命令行模式&#xff…

Meta低头,库克认错,XR回归第一性原理

图片|Photo by Maxim Hopman on Unsplash ©自象限原创 作者丨罗辑 2024年,XR的故事应该怎么讲? 如果从数据上看,这应该是个沉重的话题。 根据 IDC 报告,2023 年全球 VR 市场出货量下滑了 10.7%。2024 年第一…

【必看】卖惨营销

经常卖惨的人到底是什么心理? Berry Ni同学说: 吸引别人的注意力。想要得到关注。 让你降低对他的期待。 让你能够在他做好一件小事的情况下就表扬他。 控制你对他的想法认知。 ​ 浪矢心理同学说: 1,求关注。他觉得买惨有好处&…

【Excel、RStudio计算T检测的具体操作步骤】

目录 一、基础知识1.1 显著性检验1.2 等方差T检验、异方差T检验1.3 单尾p、双尾p1.3.1 检验目的不同1.3.2 用法不同1.3.3 如何选择 二、Excel2.1 统计分析工具2.1.1 添加统计分析工具2.1.2 数据分析 2.2 公式 -> 插入函数 -> T.TEST 三、RStudio 一、基础知识 参考: 1.…

Gradle学习-4 创建二进制插件工程

二进制插件工程创建有两种方式: 创建独立的工程,调试的时候,需要手动发布成一个二进制插件jar包,给其他工程里面引用,进行功能测试。这种方式是比较麻烦的。创建buildSrc子工程,它是一个大工程中的子工程&…

开源网安荣获第一新声“2024中国最佳信创安全厂商”,信创实力获认可

近日,由权威机构【第一新声】与【天眼查】联合发起的“2024中国最佳信创厂商系列榜单”评选中,开源网安以其技术创新能力和在信创领域持续投入,成功入选“中国最佳信创安全厂商”。 开源网安,作为软件安全领域创领者,自…

数据结构 - C/C++ - 栈

目录 结构特性 结构实现 结构容器 结构设计 顺序栈 链式栈 结构特性 栈(stack)是线性表的一种形式,限定仅在表的一端进行插入或者删除的操作。 栈顶 - 表中允许插入、删除的一端称为栈顶(top),栈顶位置是可以发生变化的。 插入 - 进栈、入栈、压栈…

数据结构预科

在堆区申请两个长度为32的空间,实现两个字符串的比较【非库函数实现】 要求: 1> 定义函数,在对区申请空间,两个申请,主函数需要调用2次 2> 定义函数,实现字符串的输入,void input(char …

31 C++11

本节目标 c11简介列表初始化变量类型推导范围for循环新增加容器右值新的类功能可变参数模板 1. c11简介 在2003年标准委员会提交了一份计数勘误表(简称TC1),使得c03这个名字已经取代了c98称为c11之前的最新的c标准名称。不过由于c03&#x…

JAVA学习笔记DAY12——MySQL基础

文章目录 数据库概述为什么要使用数据库相关概念关系型和非关系型RDBMS非RDBMS - NoSQL MySQL图形化管理工具Navicat SQL前后端环境nginx 反向代理MD5加密 数据库概述 为什么要使用数据库 持久化:指把数据保存到可掉电存储设备中,一般指将内存中的数据…

详解归一化、标准化、正则化以及batch normalization

文章目录 what(是什么)where(用在哪)How(如何用&&原理)归一化实现方式原理示例说明 标准化实现方式原理示例说明 正则化实现方式原理作用 Batch Normalizationpytorch中的batch normalization原理BN的作用 归一化、标准化…

代理设计模式和装饰器设计模式的区别

代理设计模式: 作用:为目标(原始对象)增加功能(额外功能,拓展功能) 三种经典应用场景: 1:给原始对象增加额外功能(spring添加事务,Mybatis通过代理实现缓存功能等等) 2:远程代理(网络通信,输出传输(RPC,D…

【TB作品】智能台灯,ATMEGA16单片机,Proteus仿真

智能台灯 1 adc检测光强光敏电阻 显示电压 2 光强太高 也就是高于临界值 就关闭小灯 3 光强太低 也就是低于临界值 就打开小灯 3 按键修改临界值 显示 实验报告:基于ATMEGA16单片机的智能台灯设计与Proteus仿真 1. 实验背景 智能台灯是一种能够根据环境光强自动调…

代码随想录第40天|动态规划

完全背包 完全背包物品可以无限使用 01背包核心代码 01背包中的二维dp数组的两个for遍历可颠倒, 而一维dp数组的一定先遍历物品再遍历背包容量状态转移方程(背包容量一定为递减) 完全背包核心代码 (只在完全背包中一维dp数组嵌套顺序可颠倒, 实际题目需要确定遍历顺序) 状…

【高考志愿】建筑学

目录 一、专业介绍 1.1 专业定义 1.2 专业培养目标 1.3 核心课程 二、就业方向和前景 2.1 就业方向 2.2 专业前景 三、报考注意 四、行业趋势与未来展望 五、建筑学专业排名 一、专业介绍 1.1 专业定义 建筑学,这一充满艺术与科技魅力的学科,…

天线 有源 无源 参数

无源测试驻波比VSWR/回波损耗(Return Loss)≤2效率≥50%输入阻抗50R10%增益天线方向图3D场强图方向性 有源测试 OTA 传导测试:发射功率传导测试:接收灵敏度总辐射功率TRP(Total Radiated Power)≥发射功率减3dB总接收灵敏度TIS(Total Isotrop…

JDBC1(JDBC相关类与接口 ​连接mysql数据库​ 测试 不同数据库厂商实现-MySQL和Oracle)

目录 一、JDBC 1. JDBC相关类与接口 1.1 DriverManager 1.2 Connection 1.3 Statement 4.ResultSet 2. JDBC工作原理 二、连接mysql数据库 1. 导入jar包 2. 使用DriverManager加载驱动类 3. Connection接口 4. Statement接口 5. ResultSet接口 ​编辑 6. 关闭并…

显卡简介

显卡是计算机系统中一个重要的组成部分,它负责处理图形和视频输出。显卡的性能直接影响到计算机的图形处理能力,因此在游戏、视频编辑、3D渲染等需要高性能图形处理的应用中,显卡的选择至关重要。本文将从显卡的基本概念、性能指标、市场现状…

【Node.JS】入门

文章目录 Node.js的入门涉及对其基本概念、特点、安装、以及基本使用方法的了解。以下是对Node.js入门的详细介绍: 一、Node.js基本概念和特点 定义:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它使得JavaScript能够运行在服务器…

【鸿蒙学习笔记】基础组件Progress:进度条组件

官方文档:Progress 目录标题 作用最全属性迭代追加进度赋值风格样式 作用 进度条组件 最全属性迭代追加 Progress({ value: 20, total: 100, type: ProgressType.Linear }).color(Color.Green)// 颜色.width(200)// 大小.height(50)// 高度.value(50)// 进度可更…