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

俄文视频网站开发电脑网页传奇

俄文视频网站开发,电脑网页传奇,施工企业资质标准2021,石家庄招投标公共服务平台官网C 右值引用案例 右值引用#xff08;Rvalue reference#xff09;是 C11 引入的新特性#xff0c;它的主要意义是实现移动语义#xff08;Move semantics#xff09;和完美转发#xff08;Perfect forwarding#xff09;。这两者都可以提高代码的性能和灵活性。 一、移…C 右值引用案例 右值引用Rvalue reference是 C11 引入的新特性它的主要意义是实现移动语义Move semantics和完美转发Perfect forwarding。这两者都可以提高代码的性能和灵活性。 一、移动语义Move semantics 在 C11 之前我们只能通过拷贝构造函数和拷贝赋值运算符来传递对象。拷贝操作通常涉及分配内存和复制数据这可能导致性能下降。然而在很多情况下我们不需要保留原始对象的状态因为它在创建副本后就不再使用了。这种情况下我们可以使用移动语义来避免不必要的拷贝。 右值引用允许我们将一个对象的资源如内存分配从一个对象“移动”到另一个对象而不需要执行昂贵的拷贝操作。移动构造函数和移动赋值运算符通常用于实现移动语义。当我们使用 std::move() 将一个对象转换为右值时可以触发移动构造函数和移动赋值运算符的调用。 例如std::vector 和 std::string 等 C 标准库容器已经实现了移动语义这使得在插入、删除和重新分配等操作中可以避免不必要的拷贝从而提高性能。 二、完美转发Perfect forwarding 在 C11 之前我们很难编写一个通用的包装函数如工厂函数、代理函数或装饰器函数该函数可以接受任意类型和数量的参数并将它们传递给另一个函数同时保持参数的左值或右值特性。这是因为我们必须为每个可能的参数组合编写不同的重载函数。 右值引用和新引入的 std::forward() 函数可以解决这个问题。我们可以使用模板和通用引用又称为转发引用实际上是一个右值引用来编写一个通用的包装函数该函数可以接受任意类型和数量的参数并将它们转发给另一个函数同时保持参数的原始类型左值或右值。这种技术称为完美转发Perfect forwarding。 总之右值引用的主要意义在于实现移动语义和完美转发。这两者都可以提高代码的性能和灵活性使 C 成为一个更强大的编程语言。 三、移动构造 #include iostream #include utilityclass Myclass { public:Myclass() {std::cout 执行构造函数 std::endl;}Myclass(const Myclass other) {std::cout 执行了拷贝构造 std::endl;}Myclass(Myclass other) {std::cout 执行了移动构造 std::endl;} };Myclass helper(Myclass obj) {return std::move(obj); }int main() {Myclass s;Myclass x helper(std::move(s)); }四、完美转发 #include iostream #include utility #include stringvoid print_strings(const std::string s1, const std::string s2) {std::cout Lvalue version: s1 s2 std::endl; }void print_strings(std::string s1, std::string s2) {std::cout Rvalue version: s1 s2 std::endl; }template typename T1, typename T2 void perfect_forward(T1 arg1, T2 arg2) {print_strings(std::forwardT1(arg1), std::forwardT2(arg2)); }int main() {std::string s1 Hello;std::string s2 World;perfect_forward(s1, s2); // 调用左值版本perfect_forward(std::move(s1), std::move(s2)); // 调用右值版本 }
http://www.w-s-a.com/news/575410/

相关文章:

  • 韩国优秀设计网站找做网站找那个平台做
  • 贵州省清镇市建设学校网站国家企业信用信息公示系统官网河北
  • 游戏界面设计网站网站建设问一问公司
  • 织梦网站模板如何安装教程视频国外哪些网站可以注册域名
  • 用群晖做网站网站中文名称注册
  • 做一个企业网站需要哪些技术app开发公司名字
  • 网站建设有技术的公司图片在线设计平台
  • 建公司网站的详细步骤关于进一步加强网站建设
  • 丰宁县有做网站的吗?维护一个网站一年多少钱
  • 杭州网站设计渠道wordpress购物主题
  • 山东政务网站建设文字logo免费设计在线生成
  • 韩雪个人网站唐山网络运营推广
  • 查建设工程业绩在哪个网站网站建设优化服务如何
  • 江苏省建设工程安全监督网站商洛网站制作
  • 海淀网站建设wzjs51网页设计页面配色分析
  • 网站的备案流程图垦利网站制作
  • 行业用品网站怎么建设外链买东西的网站都有哪些
  • 淘宝做促销的网站集团门户网站建设策划
  • 网站排行榜查询怎样把个人介绍放到百度
  • vps 网站上传河北省招投标信息网
  • 武进网站建设咨询网站定制公司选哪家
  • 郑州市建设投资集团公司网站深圳企业网站建设推荐公司
  • 天津个人网站备案查询dz网站恢复数据库
  • 关于网站建设的期刊文献宣传片文案
  • 物业网站模板下载wordpress+菜单大小
  • 网站建设案例教程视频空间刷赞网站推广
  • 网站建设借鉴做外贸球衣用什么网站
  • 网站建设的前途微信公众号制作网站
  • 做网站之前要安装什么网站改进建议有哪些
  • 网站建设+管理系统开发山东专业网站建设公司