要了解move函数首先弄清左值引用和右值引用。

左值、左值引用、右值、右值引用
1、左值和右值的概念
左值是可以放在赋值号左边可以被赋值的值;左值必须要在内存中有实体;
右值当在赋值号右边取出值赋给其他变量的值;右值可以在内存也可以在CPU寄存器。
一个对象被用作右值时,使用的是它的内容(值),被当作左值时,使用的是它的地址。
2、引用
引用是C++语法做的优化,引用的本质还是靠指针来实现的。引用相当于变量的别名。
引用可以改变指针的指向,还可以改变指针所指向的值。
引用的基本规则:
- 声明引用的时候必须初始化,且一旦绑定,不可把引用绑定到其他对象;即引用必须初始化,不能对引用重定义;
- 对引用的一切操作,就相当于对原对象的操作。
3、左值引用和右值引用
3.1 左值引用
左值引用的基本语法:type &引用名 = 左值表达式;
3.2 右值引用
右值引用的基本语法type &&引用名 = 右值表达式;
右值引用在企业开发人员在代码优化方面会经常用到。
右值引用的“&&”中间不可以有空格。
- std::move并不能移动任何东西,它唯一的功能是将一个左值强制转化为右值引用,继而可以通过右值引用使用该值,以用于移动语义。从实现上讲,std::move基本等同于一个类型转换:static_cast<T&&>(lvalue);
- C++ 标准库使用比如vector::push_back 等这类函数时,会对参数的对象进行复制,连数据也会复制.这就会造成对象内存的额外创建, 本来原意是想把参数push_back进去就行了,通过std::move,可以避免不必要的拷贝操作。
- std::move是为性能而生。
- std::move是将对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存的搬迁或者内存拷贝。
用法:
原lvalue值被moved from之后值被转移,所以为空字符串.
#include <iostream>
#include <utility>
#include <vector>
#include <string>
int main()
{
std::string str = "Hello";
std::vector<std::string> v;
//调用常规的拷贝构造函数,新建字符数组,拷贝数据
v.push_back(str);
std::cout << "After copy, str is \"" << str << "\"\n";
//调用移动构造函数,掏空str,掏空后,最好不要使用str
v.push_back(std::move(str));
std::cout << "After move, str is \"" << str << "\"\n";
std::cout << "The contents of the vector are \"" << v[0]
<< "\", \"" << v[1] << "\"\n";
}
输出:
After copy, str is "Hello"
After move, str is ""
The contents of the vector are "Hello", "Hello"
相关推荐:
SEO刷:让你的网站一夜之间登顶搜索引擎!,独特seo技巧
ChatGPT怎么打开不了?全方位解决方案!,大庆ai
ChatGPT不能用?揭秘你可能忽视的真相和解决方法,强国ai2022
SEO优化快:如何在短时间内实现网站流量爆发,Lacey0508ai
ChatGPT不能加载过去的对话,如何提升你的使用体验?,ai智能衣服
SEO中权重是什么意思?让你迅速网站排名的核心秘密!,长颈鹿智能AI点读机
GoogleSEO打满分自然流量会高吗?揭开SEO优化的真相,猪插画ai
SEO优化关键技巧:提升网站排名的实战攻略,科大讯飞ai论文写作软件
ChatGPT桌面版无法加载?快速解决方案及常见问题解析,ai媚眼
软件AI:颠覆未来的智能革命
交友群都有哪些,交友群是干什么的 ,ai猫csgo
ChatGPT支付时银行卡被拒绝?教你几招轻松解决问题!,国内ai换图
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,乳山网站优化关键词排名
seo相当于什么职业,seo相当于什么职业类别 ,usatisfy ai
SEO首选:如何通过优化网站提升排名和流量,简单的网站优化软件
SEO联系:如何通过SEO优化提升您的网络营销效果,企业营销推广获客
SEO占位:如何在竞争激烈的市场中占得先机?,梁平区省心全网营销推广
在线AI生成文章:智能写作的未来趋势
SEO子-为你的网站注入流量的秘密武器,麻城网站网址优化
SEO引擎优化方法-让你的网站流量暴增的实战指南,ai智慧树
高效创作之路:文章AI生成器的力量
SEO短视:为何眼前的成效不能成为长久的策略?,网站上线seo优化
怎样利用AI写文章,轻松提升写作效率
如何用AI改文章,让写作更高效、精准,提升内容质量
SEO差价如何用SEO优化帮助企业实现成本与效益的完美平衡,盐城seo收费贵吗
SEO优化需要给网站做哪些优化工作?,ai捕捉火苗
seo网站代码是什么,网站专业术语中seo意思是什么 ,拟人ai制作
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径
seo读什么书,seo是哪个专业的 ,亚洲9ai吧
seo站长什么意思,站长工具 - seo综合查询 ,ai少女身材
亚马逊产品seo什么意思,亚马逊平台产品专业术语 ,小新同学ai
AI代谢文章:从灵感到成果的创作革命
SEO合同:确保您网站优化成功的关键保障,微博营销推广规则最新
怎么用AI写文:让创作更轻松,效率翻倍
怎么查一篇文章是不是AI写的?你需要这几个关键方法!
SEO做好,企业网站流量翻倍的关键,seo白帽技术有哪些
SEO提供:如何通过精准的SEO策略提升网站流量与品牌影响力,刷关键词排名立的火星
为什么选择收录网站是企业在线营销的必备策略,全网营销与推广
360刷排名工具选哪家?揭秘2025年最强排名优化工具!,ai写作网站哪个好一点
Bing搜索的注意事项-提高搜索效率与准确性,轻松获取所需信息,最近ai写作软件推荐
seo高手有什么条件,seo难上手吗 ,指南ai写作电力创新
SEO量:提升网站流量和排名的关键法则,德兴seo
SEO范例:如何通过优化提升网站流量,获取更多商机,广州抖音seo搜索广告
ChatGPT为什么页面下拉不了?问题解析与解决方案,ai对准
ChatGPT的诞生,预示着人工智能大规模应用的时代已经来临,ai此生不渝
seo要学什么技术,seo要学什么技术好 ,ai.fale
SEO观察:2025年搜索引擎优化的新趋势与机遇,seo2是什么状态
AI人物生成:重新定义虚拟形象创作的未来
SEO获取流量的必杀技:如何通过优化轻松提升网站排名,德州全网营销推广价格
seo需要会什么技术呢,seo需要会什么技术呢知乎 ,红色框ai