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

企业产品微网站收费吗北京网站关键词排名公司

企业产品微网站收费吗,北京网站关键词排名公司,龙岩建设局招聘网站,东莞招聘网最新招聘信息目录 左值 右值 左值引用与右值引用比较 左值引用总结#xff1a; 右值引用总结#xff1a; 左值引用的使用场景#xff1a; 引用传参和做返回值都可以提高效率(减少拷贝) 左值引用的短板#xff1a; 右值引用和移动语义解决上述问题#xff1a; 下面就是有移动… 目录 左值 右值 左值引用与右值引用比较 左值引用总结 右值引用总结 左值引用的使用场景 引用传参和做返回值都可以提高效率(减少拷贝) 左值引用的短板 右值引用和移动语义解决上述问题 下面就是有移动构造的情况 不仅仅有移动构造还有移动赋值 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数据结构CLinuxMySQL的学习干货以及重要代码的分享
http://www.dnsts.com.cn/news/167677.html

相关文章:

  • 网站建设氺首选金手指12温州网站建设 温州网站制作
  • 17做网店网站池尾游戏网站用户建设需求
  • 单页面网站有哪些内容吗优化网站的步骤案列
  • 外贸网站建设内容包括哪些设计某网站的登录和注册程序
  • 机关门户网站建设意义医院网站前置审核
  • 昆山app网站制作如何建立一个小程序
  • 电子网站建设怎么做跨境电商网站
  • 腾讯建设网站首页做网站最基本
  • 贵州省住房和城乡建设厅网站wordpress 资源下载主题
  • 大学生兼职网站做ppt糖果网站建设策划书
  • 公司官网网站建设想法常州建网站公司
  • 甘肃网站建设网站制作湛江网站建设制作价格
  • 网站的规划建设如何布局怎么把东西发布到网上卖
  • xp 做网站服务器吗免费网站网络推广
  • 高端视觉网站企业网络组网设计
  • 网站运营需要什么条件做网页是什么专业
  • 润商网站建设网络推广计划
  • 镇江网站建设网站制作公司机械外贸网站建设
  • wordpress 清空文章成都谷歌seo
  • 高权重网站怎么做全国建造师信息查询
  • 建一个商城网站多少钱百度快照推广一年要多少钱
  • php旅游类网站开发品牌网站建设方
  • seo网站推广专员招聘app推广方式
  • 邮件网站怎么做网站开发顶岗周记
  • 西平县建设局网站移动网站建设可信赖
  • 网站建设策划报价单贵阳高端网站建设
  • 嘉兴市建设监理协会网站wordpress 顶部公告
  • 专业模板建站价格广东seo课程
  • 自媒体可做外链网站施工企业的安全生产许可证谁发的
  • 有没有做长图的网站怎样下载wordpress上面的主题