【C++】右值引用,移动语义,完美转发

news2025/1/16 20:00:10

目录

  • 右值引用
  • 移动语义
    • 拷贝构造与移动构造
  • 万能引用与完美转发

右值引用

左值:可以出现在赋值符号的左边和右边,左值可以取地址。
右值:右值可以出现在赋值符号右边,不能出现在左边,右值不能取地址。
左值/右值引用就是给左值/右值起别名。

	int x = 1, y = 2;
	int& r1 = x;//左值引用
	const int& r2 = x + y;//const左值引用可引用右值

	int&& rr1 = 10;//右值引用
	int&& rr2 = x + y;
	int&& rr3 = move(x);//右值引用可引用move后的左值

移动语义

移动语义可以直接获取将亡资源,减少拷贝

拷贝构造与移动构造

(实际上在 func 返回时,发生了两次拷贝,这个过程编译器在这里做了优化)
在这里插入图片描述
移动构造
在这里插入图片描述

万能引用与完美转发

完美转发能够保持原来的值属性不变

对于一个Object类,有以下方法定义,若不使用完美转发,对象经过多层调用传递后值属性不能够保持
在这里插入图片描述

使用万能引用, universal reference
在这里插入图片描述
使用完美转发,可保持原属性
在这里插入图片描述

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

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

相关文章

python+django+协同过滤算法-基于爬虫的个性化书籍推荐系统(包含报告+源码+开题)

为了提高个性化书籍推荐信息管理的效率;充分利用现有资源;减少不必要的人力、物力和财政支出来实现管理人员更充分掌握个性化书籍推荐信息的管理;开发设计专用系统--基于爬虫的个性化书籍推荐系统来进行管理个性化书籍推荐信息,以…

Qt XML文件解析 QDomDocument

QtXml模块提供了一个读写XML文件的流,解析方法包含DOM和SAX,两者的区别是什么呢? DOM(Document Object Model):将XML文件保存为树的形式,操作简单,便于访问。 SAX(Simple API for …

桥梁安全监测方法和内容是什么?

桥梁安全监测方法和内容是什么?桥梁监测是保障桥梁安全和稳定的重要手段。随着科技的进步,桥梁监测技术和设备不断完善,监测内容也越来越全面。本文万宾科技小编将为大家介绍桥梁安全监测的方法和内容,以期帮助大家更好地了解这一领域。 桥梁…

Zabbix技术分享——聚合图形配置指引

作为一款企业级监控工具,Zabbix支持提供图形化的报表和图形展示功能。用户可以使用Zabbix聚合图形(aggregate graph)来汇总和展示多个数据项的图形,将多个监控指标放在同一个图形中,以便更好地展示整体趋势和变化。 本…

iis站点备份以及端口号查找

文件地址 %windir%\system32\inetsrv\config

红外/可见光图像配准融合

红外/可见光图像配准融合 根据文献【1】,对于平行光轴的红外可见光双目配置进行图像配准,主要的限制是图像配准只是对特定的目标距离(Dtarget)有效。并排配置的配准误差 δx(以像素表示)的数学表达式为&…

wsl2中的ubuntu使用systemctl报错问题

显示如下错误:System has not been booted with systemd as init system (PID 1). Cant operate 原因在于wsl中的ubuntu不完整,手动安装systemctl貌似也不好用,可以使用等同的sysvinit命令 替换关系如下:

动态规划入门:斐波那契数列模型以及多状态(C++)

斐波那契数列模型以及多状态 动态规划简述斐波那契数列模型1.第 N 个泰波那契数(简单)2.三步问题(简单)3.使⽤最⼩花费爬楼梯(简单)4.解码方法(中等) 简单多状态1.打家劫舍&#xff…

测试开发板——第一个AutoSAR程序

前提 在上一篇文章中,已经安装好了所有软件 裸机程序 如果不想运行AutoSAR程序来测试开发板,也可以使用裸机程序来测试,具体可以参考 IARopenSDAs32k144 环境搭建_zdwen6zi的博客-CSDN博客 只需要 IAR 工具就可以完成,demo包我…

打家劫舍00

题目链接 打家劫舍 题目描述 注意点 如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警0 < nums[i] < 400 解答思路 最初想的是使用深度优先遍历&#xff0c;到达任意一个位置时&#xff0c;小偷想要偷窃最高金额&#xff0c;一定要选择后面第2个房…

Ubuntu设置中文

找到Settings 进入Settings&#xff0c;找到Region & Language 再找到Manage Installed Languages 点击Manage Installed Languages&#xff0c;出现弹出&#xff0c;再点击Install进行安装 按照提示输入密码 认证成功后&#xff0c;会进行Applying changes安装 点击Instal…

vscode 无法跳转第三方安装包

vscode 无法跳转第三方安装包 场景&#xff1a;使用vscode写代码时&#xff0c; 第三方的安装包无法使用ctrl 左键&#xff0c;点击进入查看&#xff0c; 不方便源码查看 解决办法&#xff1a; 使用快捷键 Ctrl Shift P&#xff0c; 进入命令搜索框搜索 setting.json 编辑…

【Linux】如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)

如何在linux系统重启或启动时执行命令或脚本&#xff08;也支持docker容器内部&#xff09; 第一种&#xff1a;使用 systemd 服务单元在重启或启动时运行命令或脚本第二种&#xff1a;使用 /etc/rc.d/rc.local 文件在重启或启动时运行脚本或命令第三种&#xff1a;使用 cronta…

【附源码】Axure RP Pro8.0安装教程|HTML|网页设计

软件下载 软件&#xff1a;Axure版本&#xff1a;8.0语言&#xff1a;简体中文大小&#xff1a;82.53M安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨下载链接&#xff1a;https://pan.baidu.com/s/…

城市经济大脑:城市数字经济发展的核心引擎

以下内容来自于易知微官网,进入官网可了解更多详情。 注意&#xff1a;案例数据均为虚拟数据 随着数字时代的到来&#xff0c;全面推进城市数字化转型&#xff0c;构建与城市数字化发展相适应的现代化治理体系与治理能力&#xff0c;已成为推进新型智慧城市、数字中国建设的关…

3.RabbitMQ 架构以及 通信方式

一、RabbitMQ的架构 RabbitMQ的架构可以查看官方地址 可以看出RabbitMQ中主要分为三个角色&#xff1a; Publisher&#xff1a;消息的发布者&#xff0c;将消息发布到RabbitMQ中的ExchangeRabbitMQ服务&#xff1a;Exchange接收Publisher的消息&#xff0c;并且根据Routes策…

Oracle跨库访问DBLINK

1. DBLINK的介绍 Oracle在进行跨库访问时&#xff0c;可以创建DBLINK实现&#xff0c;比如要将UAT的表数据灌入开发环境&#xff0c;则可以使用UAT库为数据源&#xff0c;通过DBLINK实现将查出的数据灌入开发库。 简而言之就是在当前数据库中访问另一个数据库中的表中的数据 2…

企业批量寄件打单教程

快递行业的发展&#xff0c;为企业因公寄件带来便利性的同时&#xff0c;企业对快递的依赖也为了快递公司带来一定的业务量&#xff0c;然后间接帮助企业再去提升自己的服务质量。为什么这么说呢&#xff1f;企业因公寄件&#xff0c;能为快递公司贡献一定寄件量&#xff0c;而…

解决redis-server.exe不是内部或外部命令

报错&#xff1a;redis-server.exe不是内部或外部命令 原因&#xff1a;未进入到redis的安装目录下 解决&#xff1a;先找到redis安装路径&#xff0c;复制之后&#xff0c;在终端中输入cd xxxxx(redis的安装路径)&#xff0c;进入安装目录之后再次输入redis-server.exe就成功了…

vue-element-admin最新版4.4实现多个url路由匹配到一个路径时,左侧菜单保持高亮状态

文章目录 环境&#xff1a;需求&#xff1a;原因分析&#xff1a;如何解决&#xff1a; 环境&#xff1a; vue-admin-template-4.4版本&#xff08;vue2&#xff09; 需求&#xff1a; 当我访问申请开户时&#xff0c;也希望支付菜单能保持高亮状态。 原因分析&#xff1a; …