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

正能量网站地址污的企业网站建设原则是( )

正能量网站地址污的,企业网站建设原则是( ),运营商app下载,WordPress 08影院源码文章目录 前言一、右值引用是什么#xff1f;那么#xff0c;什么又是右值#xff1f;右值引用 二、使用步骤和意义1.1.11.2 2.右值引用的最大意义2.1 完美转发2.2 万能折叠 前言 C11 是2011年对C这门语言发布的新标准#xff0c;并且此次标准引入了十分多的新特性#x… 文章目录 前言一、右值引用是什么那么什么又是右值右值引用 二、使用步骤和意义1.1.11.2 2.右值引用的最大意义2.1 完美转发2.2 万能折叠 前言 C11 是2011年对C这门语言发布的新标准并且此次标准引入了十分多的新特性很大程度上优化且增加了C语言的实用性本章主要讲 C11 新引用的右值引用。 一、右值引用是什么 在从C语言进入到C时我们就已经开始接触到引用 int i 0; int ir i; 引用在我们以往的理解就是给一个变量取别名实际上我们也确实可以这么理解。 那么什么又是右值 这里就需要区分左值和右值的概念这里就需要注意许多刚接触到C的初学者可能只是片面的认为 在“左边的就是左值 在”右边的就是右值而这种区分方式是严重错误的。 int i 0; const int i1 2; 那我们可以理解为具有常性不可更改的就是右值可更改的就是左值吗 也不行 其实区分左值还是右值很简单就看它是否可以被取地址可以被取地址的就是左值不可以被取地址的就是右值。 int i 0; 左值 const char c; 左值 double* d; 左值 string str; 左值 int ii i; 左值 以上都可以被取地址所以都是左值 1; 右值 sizeof(int); sizeof(int)的返回值为右值 (xy); 运算符的本质其实也是调用函数所以也是右值 int(1); 匿名对象也是右值 以上就是常见的右值 右值引用 左值引用 是 int ii i; 而C新增加的右值引用是专门对于右值进行引用使用 int a 1, b 2; int i 10; int i1 ab; int i2 sizeof(a); 二、使用步骤和意义 1. 右值引用和左值引用其实都用共同的目的那就是为了减少拷贝在我们曾经模拟实现的string和vector中我们为了减少拷贝总是会去使用左值引用。 string代码如下示例 void Swap(string str) {::swap(_str, str._str);::swap(_size, str._size);::swap(_capacity, str._capacity); } string(const string str) //拷贝构造:_str(nullptr), _capacity(0),_size(0) {string tmp(str._str);Swap(tmp); }1.1 那么是不是左值引用就只能引用左值 string(const string str) //拷贝构造:_str(nullptr), _capacity(0),_size(0) {string tmp(str._str);Swap(tmp); }string str string(hello world);这里我们采用匿名对象来构造一个string刚刚我们也说了匿名对象也是右值但是仍然可以走上面的拷贝构造因为我们使用了const string str加了const这就使得我们的左值引用也可以引用右值。 而我们的右值引用是不可以引用左值的大家可以自行尝试编译器是会报错的。 1.2 综上述既然我们的const 左值引用也可以去引用右值那么右值引用的意义是不是就不大了 2.右值引用的最大意义 我们先来看刚刚的示例代码 代码如下示例 string(const string str) //拷贝构造:_str(nullptr), _capacity(0),_size(0) {string tmp(str._str); //这里发生了拷贝Swap(tmp); }即使我们采用左值引用这里仍然会发生一次拷贝而在某些容器例如vector下拷贝的代价可能会十分巨大而面对一些将亡值拷贝的意义并不大因为有更好的方式 这个时候右值引用就凸显出了它的作用 string(string str):_str(nullptr), _capacity(0), _size(0){Swap(str);}因为在这种情况下这里的str一定是一个右值中的将亡值它的生命周期仅仅只是为了构造新的string所以我们完全可以将其数据用过Swap掠夺过来再让他自行析构这就减少了一次拷贝提高了程序的运行效率 2.1 完美转发 关于右值引用还需要注意的是一旦使用了右值引用那么就会改变其原有属性 int a 1, b 2; int i 10; int i1 ab; int i2 sizeof(a); 就例如该上 这里的i,i1,i2都会因为右值引用改变右值属性变为左值属性并且你可以对它们的内存数据进行修改这是因为这些右值数据被移动到了一个其他区域储存起来。 而C11为了保持其原有的属性提供了完美转发。 std::forward(x); void Fun(int x) { cout 左值引用 endl; } void Fun(const int x) { cout const 左值引用 endl; } void Fun(int x) { cout 右值引用 endl; } void Fun(const int x) { cout const 右值引用 endl; } // std::forwardT(t)在传参的过程中保持了t的原生类型属性。 templatetypename T //万能折叠 void PerfectForward(T t) {Fun(std::forwardT(t));//完美转发 }2.2 万能折叠 templatetypename T //万能折叠 void PerfectForward(T t) {Fun(std::forwardT(t)); }通过这样的模版格式来使得t做一个自动折叠的功能如果传的是一个左值那么就是用左值引用如果是一个右值就是右值引用。
http://www.hkea.cn/news/14531217/

相关文章:

  • 如何提高网站的搜索wordpress商城模板好用吗
  • 网站如何创建北京建设网站公司
  • 网站优化公司大家好深圳公司注册地址异常怎么办
  • 简述网站首页制作过程2024年1月时事新闻
  • 设计理论网站人力资源公司起名大全册子
  • 网站建设费走什么科目网站设计 职业
  • 企业网站建设方案渠道曲靖手机网站建设
  • ie兼容所有网站wordpress添加页脚QQ图标
  • 网站建设需要注意什么问题如何查公司注册信息及法人
  • 网站首页布局有哪些设计图案
  • 微网站免费平台wordpress-move
  • 学院网站建设工作总结江门市网站建设
  • wordpress个人博客seo兼职平台
  • 网站设计公司推荐奇点网络定制软件开发公司有哪些
  • 上海品质网站建设做商城网站哪个好
  • 宁波网站建设建站怎么做专业企业网站建设多少钱
  • 母婴电子商务网站建设wordpress 查询条件
  • 长沙建站网站HTML和PHP怎么做网站
  • 自由贸易试验区网站建设方案营销单页网站制作
  • 入口网站推广使用wordpress编辑
  • 网站建设平台合同网站建设找实体还是淘宝
  • 做一个网站首页多少钱家电设计网站
  • 基层建设论文查询官方网站Wordpress 收录提交
  • 要学做网站网站建设的含义
  • 保定免费网站制作wordpress后台添加导航
  • 比较好的公司网站企业做增资 网站平台
  • 网站被惩罚之后怎么做单页面的网站模板
  • 网站建设行业解决方案邯郸网站建设
  • 四川建设厅官方网站查询最新新闻热点事件国际
  • 欧美做暖网站90设计素材网官网