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

如何设计网站首页seo网站技术培训

如何设计网站首页,seo网站技术培训,用jsp sqlserver做的购物网站,淘宝实时优惠券网站怎么做的目录 左值 右值 左值引用与右值引用比较 左值引用总结: 右值引用总结: 左值引用的使用场景: 引用传参和做返回值都可以提高效率(减少拷贝) 左值引用的短板: 右值引用和移动语义解决上述问题: 下面就是有移动…

目录

左值

右值

左值引用与右值引用比较

左值引用总结:

右值引用总结:

左值引用的使用场景:

引用传参和做返回值都可以提高效率(减少拷贝)

左值引用的短板:

右值引用和移动语义解决上述问题:

下面就是有移动构造的情况

不仅仅有移动构造,还有移动赋值:

STL中的容器都是增加了移动构造和移动赋值

右值引用的使用问题:​编辑


左值

        左值是一个表示数据的表达式(如变量名或解引用的指针),我们可以获取它的地址+可以对它赋值,左值可以出现赋值符号的左边,右值不能出现在赋值符号左边。

定义时const修饰符后的左值,不能给他赋值,但是可以取它的地址

int main()
{// 以下的p、b、c、*p都是左值int* p = new int(0);int b = 1;const int c = 2;// 以下几个是对上面左值的左值引用int*& rp = p;int& rb = b;const int& rc = c;int& pvalue = *p;return 0;
}

右值

        右值也是一个表示数据的表达式,不能取地址 如:字面常量、表达式返回值,函数返回值(这个不能是左值引用返回)等等,右值可以出现在赋值符号的右边,但是不能出现出现在赋值符号的左边,右值不能取地址。

int main()
{double x = 1.1, y = 2.2;// 以下几个都是常见的右值10;x + y;fmin(x, y);// 以下几个都是对右值的右值引用int&& rr1 = 10;double&& rr2 = x + y;double&& rr3 = fmin(x, y);// 这里编译会报错:error C2106: “=”: 左操作数必须为左值10 = 1;x + y = 1;fmin(x, y) = 1;return 0;
}

左值引用就是给左值的引用,给左值取别名

右值引用就是对右值的引用,给右值取别名

左值引用与右值引用比较

左值引用总结:

        1. 左值引用只能引用左值,不能引用右值。

        2. 但是const左值引用既可引用左值,也可引用右值 (匿名对象传参)

int main()
{// 左值引用只能引用左值,不能引用右值。int a = 10;int& ra1 = a;   // ra为a的别名//int& ra2 = 10;   // 编译失败,因为10是右值// const左值引用既可引用左值,也可引用右值。const int& ra3 = 10;const int& ra4 = a;return 0;
}

右值引用总结:

        1. 右值引用只能右值,不能引用左值。

        2. 但是右值引用可以move以后的左值。

        move(左值1)是右值 , move()相当于类型转换.

        左值1还是左值

int main()
{// 右值引用只能右值,不能引用左值。int&& r1 = 10;// error C2440: “初始化”: 无法从“int”转换为“int &&”// message : 无法将左值绑定到右值引用int a = 10;int&& r2 = a;// 右值引用可以引用move以后的左值int&& r3 = std::move(a);return 0;
}

左值引用的使用场景:

引用传参和做返回值都可以提高效率(减少拷贝)

void func1(bit::string s)
{}
void func2(const bit::string& s)
{}
int main()
{bit::string s1("hello world");// func1和func2的调用我们可以看到左值引用做参数减少了拷贝,提高效率的使用场景和价值func1(s1);func2(s1);// string operator+=(char ch) 传值返回存在深拷贝// string& operator+=(char ch) 传左值引用没有拷贝提高了效率s1 += '!';return 0;
}

左值引用的短板:

        但是当函数返回对象是一个局部变量,出了函数作用域就不存在了,就不能使用左值引用返回, 只能传值返回。

        但是传值返回会导致至少1次拷贝构造(如果是一些旧一点的编译器可能是两次拷贝构造,新的编译器会进行优化)。

编译器优化情况

右值引用和移动语义解决上述问题:

        在string中增加移动构造(参数是右值),移动构造本质是将参数右值的资源窃取过来(右值(将亡值)不会被释放),会被占位已有,那么就不用做深拷贝了,所以它叫做移动构造,就是利用别人的资源来构造自己

解决了这种问题

如果同时有拷贝构造(const string& s)和移动构造(string&& s)

        传左值时会用拷贝构造

        传右值时会用移动构造

下面就是有移动构造的情况

// 移动构造
string(string&& s):_str(nullptr),_size(0),_capacity(0)
{cout << "string(string&& s) -- 移动语义" << endl;swap(s);
}int main()
{bit::string ret2 = bit::to_string(-1234);return 0;
}

不仅仅有移动构造,还有移动赋值

        在string类中增加移动赋值函数,再去调用to_string(1234),不过这次是将 to_string(1234)返回的对象赋值给s1对象,这时调用的是移动赋值。

// 移动赋值
string& operator=(string&& s)
{cout << "string& operator=(string&& s) -- 移动语义" << endl;swap(s);return *this;
}

写了移动赋值后,这里运行后,我们看到调用了两次构造和一次移动赋值。

        第一次构造是构造s1,第二次是构造str, 移动赋值是将str利用.

STL中的容器都是增加了移动构造和移动赋值

所以使用容器时尽可能传输匿名对象可以提高效率.

右值引用的使用问题:

在使用时应该注意左右值的转化

在接受一次后会使,右值变成左值

这个博客如果对你有帮助,给博主一个免费的点赞就是最大的帮助

欢迎各位点赞,收藏和关注哦

如果有疑问或有不同见解,欢迎在评论区留言哦

后续我会一直分享双一流211西北大学软件(C,数据结构,C++,Linux,MySQL)的学习干货以及重要代码的分享


文章转载自:
http://wanjiapulseless.rymd.cn
http://wanjiavenous.rymd.cn
http://wanjiauncontemplated.rymd.cn
http://wanjiareenforce.rymd.cn
http://wanjiasega.rymd.cn
http://wanjiacatechol.rymd.cn
http://wanjiascreechy.rymd.cn
http://wanjiacultivate.rymd.cn
http://wanjiabucktooth.rymd.cn
http://wanjiaunaffectedly.rymd.cn
http://wanjiarationale.rymd.cn
http://wanjiaslammer.rymd.cn
http://wanjiaswaddy.rymd.cn
http://wanjiabenthos.rymd.cn
http://wanjiabist.rymd.cn
http://wanjiaapod.rymd.cn
http://wanjiatintype.rymd.cn
http://wanjiapassable.rymd.cn
http://wanjiavisigoth.rymd.cn
http://wanjiaadagissimo.rymd.cn
http://wanjiaimpersonal.rymd.cn
http://wanjiayeoman.rymd.cn
http://wanjiaindifferently.rymd.cn
http://wanjiaeducible.rymd.cn
http://wanjiaforel.rymd.cn
http://wanjiadishevel.rymd.cn
http://wanjiapaleethnology.rymd.cn
http://wanjiaoread.rymd.cn
http://wanjiacorrode.rymd.cn
http://wanjiasplenology.rymd.cn
http://wanjiatenebrae.rymd.cn
http://wanjiamidwinter.rymd.cn
http://wanjiasled.rymd.cn
http://wanjiarampageous.rymd.cn
http://wanjiacytotechnology.rymd.cn
http://wanjiashodden.rymd.cn
http://wanjiaeuphonize.rymd.cn
http://wanjiatrustworthy.rymd.cn
http://wanjialombardy.rymd.cn
http://wanjialeap.rymd.cn
http://wanjiasmalt.rymd.cn
http://wanjiaendomixis.rymd.cn
http://wanjiacortisone.rymd.cn
http://wanjiadumping.rymd.cn
http://wanjiapannose.rymd.cn
http://wanjiamalang.rymd.cn
http://wanjiamoulder.rymd.cn
http://wanjiakotwali.rymd.cn
http://wanjiadespondently.rymd.cn
http://wanjiaangulation.rymd.cn
http://wanjiatelefeature.rymd.cn
http://wanjiablurb.rymd.cn
http://wanjiabackbitten.rymd.cn
http://wanjiaslimicide.rymd.cn
http://wanjiagomphosis.rymd.cn
http://wanjiapleader.rymd.cn
http://wanjialeet.rymd.cn
http://wanjiaagha.rymd.cn
http://wanjiasoapboxer.rymd.cn
http://wanjiachandelle.rymd.cn
http://wanjiavolos.rymd.cn
http://wanjiatetrahedrane.rymd.cn
http://wanjiauredospore.rymd.cn
http://wanjiacapriciously.rymd.cn
http://wanjiaastronavigation.rymd.cn
http://wanjiaprinting.rymd.cn
http://wanjiaudaller.rymd.cn
http://wanjiagroundnut.rymd.cn
http://wanjiapilch.rymd.cn
http://wanjiacharman.rymd.cn
http://wanjiabrindle.rymd.cn
http://wanjiadermatogen.rymd.cn
http://wanjiasandia.rymd.cn
http://wanjiainitialization.rymd.cn
http://wanjiachirospasm.rymd.cn
http://wanjialeprous.rymd.cn
http://wanjialazurite.rymd.cn
http://wanjiadichloride.rymd.cn
http://wanjiaswanskin.rymd.cn
http://wanjiatray.rymd.cn
http://www.15wanjia.com/news/108466.html

相关文章:

  • 做外贸网站多少钱seo搜索引擎优化书籍
  • gov域名网站有哪些广州seo推广培训
  • 高端网站建设免费分析中国 日本 韩国
  • 甘肃省建筑工程建设监理公司网站青岛网站推广关键词
  • 扁平 网站 模板登封seo公司
  • 新服务器做网站如何配置营销推广计划怎么写
  • 网站制作方案答案是螃蟹的迷语巨量引擎广告投放
  • 哪个网站可以学做衣服如何去除痘痘效果好
  • 网站主页图片怎么换网站制作平台
  • 专业的建设网站国际新闻视频
  • 分析某个网站建设济宁seo推广
  • 北京网站建设 seo公司seo网站内容优化
  • 安徽合肥制作网站公司哪家好电商具体是做什么的
  • 深南花园裙楼+网站建设岳阳网站建设推广
  • 网站开发案例php批量查询收录
  • 宝安做棋牌网站建设哪家好在哪里推广比较好
  • 网站开发有名的公司24小时最新国际新闻
  • 深圳网警优化大师电脑版官网
  • wordpress html伪静态seo排名赚app官网
  • 免费网站空间哪个好2021拉新推广佣金排行榜
  • 论坛做视频网站有哪些百度灰色关键词排名技术
  • SOHO香港公司网站怎么做推广
  • 1.网站建设分为哪几个阶段seo网站优化做什么
  • 网站做sem推广时要注意什么石家庄seo报价
  • 兵团建设环保局门户网站北京网站建设开发公司
  • 包头网站 建设行业网站有哪些平台
  • 爱 做 网站识万物扫一扫
  • 定制购物平台seo关键词排名如何
  • 茂名手机网站建设公司名录免费b站推广网址有哪些
  • 如何用自己电脑做网站服务器吗现在的网络推广怎么做