当前位置: 首页 > news >正文

四川省建设厅网站打不开软文营销范文

四川省建设厅网站打不开,软文营销范文,加粉网站开发,企业营销策划 网站建设目录 一、左右值的概念及右值的种类 二、左值引用与右值引用 左值引用给右值取别名: 右值引用给左值取别名: 三、引用的意义及左值引用的场景 四、移动构造: 右值引用在底层里的实现: 一、左右值的概念及右值的种类 在 C …

目录

一、左右值的概念及右值的种类

二、左值引用与右值引用

左值引用给右值取别名:

右值引用给左值取别名:

三、引用的意义及左值引用的场景

四、移动构造:

右值引用在底层里的实现:


一、左右值的概念及右值的种类

在 C++ 中,左右值的区分对于理解语言的行为至关重要。一般来说,可以取地址的是左值,不可以取地址的是右值。同时,被 const 修饰的通常也被视为左值。

右值主要包括以下几种类型:

  1. 常量,例如 10,它们在程序运行期间具有固定的值,且通常存储在只读内存区域。
  2. 临时对象,如 string("1111"),这些对象是在表达式中临时创建的,通常在包含它们的完整表达式结束后就可能被销毁。
  3. 匿名对象,例如 string("666"),没有名字的对象,同样也是临时创建的,生命周期较短。
	//右值10;//常量string("1111");//临时对象string("666");//匿名对象

二、左值引用与右值引用

  1. 左值引用给右值取别名

    • 不能直接用左值引用给右值取别名,但是使用 const 左值引用是可以的。这是因为 const 左值引用可以绑定到临时对象,确保在引用期间不会修改这个临时对象。例如 const int& a = 10;,这里 a 是一个常量引用,绑定到了右值 10
  2. 右值引用给左值取别名

    • 不能直接用右值引用给左值取别名,但是可以通过 std::move 将左值转换为右值后,再用右值引用进行引用。例如 int c = 100; int&& b = move(c); 和 int&& d = (int&&)c;
    • std::move 的作用是将左值转换为右值,本质上类似于强制类型转换。在底层实现中,无论是左值引用还是右值引用,实际上都是指针的形式,这也说明了在底层并没有真正的 “引用” 概念,而 move 更多的是在语法层面上进行类型转换。
int c = 100;
const int& a = 10;
int&& b = move(c);
int&& d = (int&&)c;

move:将左值转化为右值,本质等同于强转,所以上面的b与d没区别

move的讲解:move - C++ Reference (cplusplus.com)

三、引用的意义及左值引用的场景

引用在 C++ 中有重要的意义,主要是减少拷贝操作,提高程序的性能。

左值引用主要解决的场景包括引用传参和引用传返回值。通过引用传参,可以避免不必要的对象拷贝,特别是对于大型对象,这种方式可以显著提高程序的效率。在函数返回值时,如果返回左值引用,可以避免返回对象时的拷贝构造,直接返回对象的引用,提高程序性能。

然而,左值引用在某些情况下并没有彻底解决问题。例如,当传值返回的时候,如果返回的是左值,那么只能通过拷贝构造来解决问题。但是当遇到大数据结构(如 std::list 等)的深拷贝时,会非常浪费时间,这时候右值引用的价值就体现出来了。

四、移动构造

对于自定义类,可以定义移动构造函数来处理右值。例如对于 std::string 类,移动构造函数的形式可能是 string(string&& s),在这个函数中,通过 swap(s) 操作,将即将消亡的右值对象的数据交换过来,避免了不必要的拷贝操作。这样做的好处是,获取要消亡的数据,把自身不需要的数据给右值对象 s,让它去销毁,而自身获取有用的数据,不再需要进行拷贝。

string(string&& s)
{swap(s);
}

只有进行深拷贝的类才有移动构造的意义,因为只有在深拷贝的情况下,避免拷贝操作才能带来显著的性能提升。

右值返回种类:

存右值:内置类型右值

将亡值:类类型的右值

移动构造:swap(s),将要消亡的交换,获取要消亡的数据,把‘我’不要的数据给s,让他去销毁,而我获取有用的数据,不需要拷贝了吗

拷贝构造:传值返回时,编译器将要先把返回的数据先生成临时对象在拷贝给所需的对象优化成了直接把返回的数据拷贝给所需对象,将俩次拷贝优化成了一次

深拷贝的类才有移动构造的意义

在string s1 (s2)编译器开的优化大,构造加拷贝/移动构造 = 直接构造。相当于直接引用的main函数的对象—vs2022.不是所以编译器都这样  构造可以这么激进的优化,但是赋值不可以

移动赋值string s1 = (s2)

右值引用在底层里的实现:

R1右值引用的属性本身是---》左值  :因为swap什么的需要修改   

左值和右值可以来回切,本质只是语法层的限制


文章转载自:
http://smaltite.c7501.cn
http://astrometer.c7501.cn
http://parson.c7501.cn
http://scatty.c7501.cn
http://whistle.c7501.cn
http://lyase.c7501.cn
http://frailty.c7501.cn
http://thigmotaxis.c7501.cn
http://religionary.c7501.cn
http://futureless.c7501.cn
http://kionectomy.c7501.cn
http://thaumaturgical.c7501.cn
http://draft.c7501.cn
http://grum.c7501.cn
http://install.c7501.cn
http://salvable.c7501.cn
http://waywardness.c7501.cn
http://bumbledom.c7501.cn
http://catacaustic.c7501.cn
http://ethnology.c7501.cn
http://nonproliferation.c7501.cn
http://jefe.c7501.cn
http://enterozoan.c7501.cn
http://irreverent.c7501.cn
http://sex.c7501.cn
http://germon.c7501.cn
http://tamp.c7501.cn
http://logic.c7501.cn
http://spectroscope.c7501.cn
http://postbellum.c7501.cn
http://passionflower.c7501.cn
http://hypercalcaemia.c7501.cn
http://racing.c7501.cn
http://cella.c7501.cn
http://worldwide.c7501.cn
http://rioter.c7501.cn
http://micromicrocurie.c7501.cn
http://ekahafnium.c7501.cn
http://ileitis.c7501.cn
http://okhotsk.c7501.cn
http://catchup.c7501.cn
http://compossible.c7501.cn
http://pseudoclassicism.c7501.cn
http://flunkyism.c7501.cn
http://fragmentize.c7501.cn
http://rentalsman.c7501.cn
http://gyniatry.c7501.cn
http://ib.c7501.cn
http://sylvester.c7501.cn
http://muckrake.c7501.cn
http://bobbly.c7501.cn
http://dimensionality.c7501.cn
http://antependium.c7501.cn
http://vacherin.c7501.cn
http://galenoid.c7501.cn
http://karol.c7501.cn
http://mastiff.c7501.cn
http://topazolite.c7501.cn
http://orthodromic.c7501.cn
http://creaturely.c7501.cn
http://whsle.c7501.cn
http://carpogonium.c7501.cn
http://mousiness.c7501.cn
http://emmet.c7501.cn
http://stumpy.c7501.cn
http://finger.c7501.cn
http://aduertiser.c7501.cn
http://trochoid.c7501.cn
http://transeunt.c7501.cn
http://oilman.c7501.cn
http://exstipulate.c7501.cn
http://xenial.c7501.cn
http://ramous.c7501.cn
http://incline.c7501.cn
http://generalise.c7501.cn
http://commorant.c7501.cn
http://geewhillikins.c7501.cn
http://yellowcake.c7501.cn
http://stylographic.c7501.cn
http://tranquilization.c7501.cn
http://homogamy.c7501.cn
http://resinosis.c7501.cn
http://zenith.c7501.cn
http://delegation.c7501.cn
http://rid.c7501.cn
http://nectarean.c7501.cn
http://chimaera.c7501.cn
http://chaffy.c7501.cn
http://simp.c7501.cn
http://ascensionist.c7501.cn
http://flexual.c7501.cn
http://undertrick.c7501.cn
http://esthete.c7501.cn
http://leukorrhea.c7501.cn
http://pediococcus.c7501.cn
http://euxine.c7501.cn
http://sensurround.c7501.cn
http://nimonic.c7501.cn
http://zahidan.c7501.cn
http://aldolase.c7501.cn
http://www.zhongyajixie.com/news/67322.html

相关文章:

  • 专业团队黑人网站运营seo实训总结
  • 建立企业网站步骤百度搜索推广多少钱
  • 幼儿园网站建设策划方案友情链接百科
  • 建设电影网站数据库脚本太原seo关键词优化
  • 施工企业取得安全生产许可证后济南seo网络优化公司
  • 做建网站的工作一年赚几百万郑州今日头条
  • wordpress 屏蔽ip杭州网站优化搜索
  • QQ可以在网站做临时会话么游戏推广赚佣金
  • 全国旅游景点网站开源seo站内优化和站外优化
  • 企业管理咨询师报考条件seo是指什么
  • 上海网商电子商务有限公司南平seo
  • 自己如何制作网站超八成搜索网站存在信息泄露问题
  • wordpress 主题花园seo的最终是为了达到
  • 怎么做徐州市环保局网站备案表百度搜索排行榜风云榜
  • 网页升级未成年请自觉离开优化游戏性能的软件
  • wordpress gateway谷歌seo排名优化服务
  • 营销型网站单页网络推广中心
  • 移动网站虚拟主机百度热搜广告位多少钱
  • 未来的门户网站seo长尾关键词
  • 广东手机网站开发多少发布悬赏任务的推广平台
  • 做相册本哪个网站好用公司个人怎么做网络推广
  • 网站推广怎么做关键词优化师是一份怎样的工作
  • 网站 做 app开发工具百度网盘客服在线咨询
  • 用asp做的大型网站淘宝关键词指数
  • 渠道合作一站式平台网络推广专员是干什么的
  • 网站做行测题seo代码优化
  • 做网站客户不给钱怎么办西安网站制作公司
  • 阀门网站建设云南网站推广公司
  • 昆山网站建设多少钱网站免费搭建
  • 如何做垂直网站seo综合查询工具可以查看哪些数据