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

名师工作室网站建设现状调查防红短网址在线生成

名师工作室网站建设现状调查,防红短网址在线生成,网站定制一般价格多少,株洲市民健康提醒文章目录STD容器使用右值引用场景移动语义在容器中的使用主要体现在两个方面#xff1a;移动构造函数和移动赋值运算符。移动语义只对右值有效#xff0c;对左值无效原因STD容器使用右值引用场景 移动语义在容器中的使用主要体现在两个方面#xff1a;移动构造函数和移动赋… 文章目录STD容器使用右值引用场景移动语义在容器中的使用主要体现在两个方面移动构造函数和移动赋值运算符。移动语义只对右值有效对左值无效原因STD容器使用右值引用场景 移动语义在容器中的使用主要体现在两个方面移动构造函数和移动赋值运算符。 移动构造函数容器在插入元素时通常需要进行内存分配和对象构造操作。如果元素类型具有移动构造函数容器就可以使用移动构造函数来构造元素避免不必要的拷贝和销毁操作提高程序的性能和效率。 例如下面的代码中使用了移动构造函数来构造 std::vector 容器中的元素 #include iostream #include vector #include stringint main() {std::vectorstd::string v;std::string s hello;v.push_back(std::move(s)); // 使用移动构造函数构造元素std::cout s std::endl; // 输出空字符串return 0; }在这个示例中我们定义了一个 std::vector 容器和一个字符串对象 s并使用 push_back 函数将 s 移动到容器中。由于使用了移动构造函数s 的资源所有权被转移到容器中s 变成了一个空字符串。 移动赋值运算符容器在进行元素赋值时通常需要进行对象销毁和对象构造操作。如果元素类型具有移动赋值运算符容器就可以使用移动赋值运算符来赋值元素避免不必要的拷贝和销毁操作提高程序的性能和效率。 例如下面的代码中使用了移动赋值运算符来赋值 std::vector 容器中的元素 #include iostream #include vector #include stringint main() {std::vectorstd::string v;std::string s1 hello;std::string s2 world;v.push_back(s1);v[0] std::move(s2); // 使用移动赋值运算符赋值元素std::cout s2 std::endl; // 输出空字符串return 0; }在这个示例中我们定义了一个 std::vector 容器和两个字符串对象 s1 和 s2并使用 push_back 函数将 s1 插入到容器中。然后我们使用移动赋值运算符将 s2 赋值给容器中的元素。由于使用了移动赋值运算符s2 的资源所有权被转移到容器中s2 变成了一个空字符串。 需要注意的是移动语义只对右值有效对左值无效。因此在使用移动语义时需要注意对象的值类别。 移动语义只对右值有效对左值无效原因 移动语义的本质是将一个对象的资源所有权从一个对象转移到另一个对象避免不必要的复制和销毁操作提高程序的性能和效率。对于右值对象由于其不再被使用因此可以将其资源所有权转移到另一个对象避免了不必要的拷贝和销毁操作。 而对于左值对象由于其可能还会被使用因此不能将其资源所有权转移到另一个对象否则会导致程序出错。例如如果将一个左值对象的资源所有权转移到另一个对象那么原对象就不能再被使用这可能会导致程序出现未定义行为。 实例 当一个对象是左值时它通常是一个具有名称的变量或对象它在程序中可能还会被使用。例如 std::string s1 hello; std::string s2 s1; // 拷贝构造函数将 s1 的值拷贝给 s2在这个示例中s1 是一个左值对象它是一个具有名称的字符串变量。当我们将 s1 的值赋给 s2 时会调用拷贝构造函数将 s1 的值拷贝给 s2这是因为 s1 是一个左值对象不能将其资源所有权转移到另一个对象。 若转移了所有权 而当一个对象是右值时它通常是一个临时对象或表达式的结果它在程序中不再被使用。例如 std::string s1 hello; std::string s2 std::move(s1); // 移动构造函数将 s1 的值转移到 s2在这个示例中s1 是一个右值对象它是一个临时对象或表达式的结果。当我们将 s1 的值转移到 s2 时会调用移动构造函数将 s1 的值转移到 s2这是因为 s1 是一个右值对象可以将其资源所有权转移到另一个对象。由于 s1 不再被使用因此可以将其资源所有权转移到 s2避免了不必要的拷贝和销毁操作。 因此移动语义只对右值对象有效对左值对象无效。在使用移动语义时需要注意对象的值类别避免出现不必要的错误和问题。
http://www.dnsts.com.cn/news/74025.html

相关文章:

  • 咸宁手机网站建设网站建设需求文章
  • 哪个网站名片做的号开发程序员培训班
  • 请别人做网站如何交付泊头市网站建设价格
  • 品牌网网站建设电子商务网站建设技能实训答案
  • 成都网站制作公司科蓝l网站建设
  • 鲜花网站建设策划方案网站规划建设书
  • 集约化网站建设方案专业设计网站效果
  • 长安东莞网站推广企业在线查询系统平台
  • 中太建设集团网站2015做哪个网站能致富
  • 做网站公司大型麻将网站怎么做的
  • 黑河做网站的嘉兴南湖区建设局网站
  • 什么网站可以做任务挣钱的网站被挂马原因
  • 零陵网站建设邯郸市地图高清版最新
  • 淘宝禁止了网站建设类网站怎么开发
  • pathon能做网站开发吗南昌专业网站建设首页排名
  • 做代理的网站wordpress附件地址
  • 天宁建设网站管理软件开发公司
  • 手机网站自适应屏幕网站地图开发
  • 网站建立要多少钱网站建设服务器端软件
  • 免费教育网站大全 建站注册域名的网站
  • 西地那非最佳吃法搜索引擎优化特点
  • 如何自己做论坛网站广州做网站 汉狮网络
  • 网站301跳转有坏处吗网页制作与网站建设项目教程
  • lol门户网站源码新津网站建设
  • 小金县建设局网站黑白的网站
  • 山东威海网站开发wordpress优秀移动站点
  • 手机p2p网站建设微信优惠券网站怎么做的
  • 构建电子商务网站的步骤重庆建设人才促进网
  • 建立网站信息发布登记制度建设网站的网站公司
  • 网站开发系统的可行性研究报告wordpress进入有点卡