美文网首页
c++入门之基础-对象

c++入门之基础-对象

作者: 楚乔_0a40 | 来源:发表于2018-05-06 22:34 被阅读0次

string类是C++标准库中一个很重要的类,使用非常方便。但是它存在一个问题:无论是否需要,拷贝构造函数和赋值运算符都会生成文字列的拷贝。

C++11中引入了右值引用和移动的概念,使得程序员可以在构造,赋值的的时候可以选择拷贝还是移动对象,从而大幅度提高程序运行的效率。

示例

代码分别使用string类的拷贝构造函数,赋值运算符的拷贝版本和移动版本进行比较。

两种方式的区别就在于移动版本使用了std::move(22行,25行)。

两种方式的区别就在于移动版本使用了std::move(22行,25行)

执行结果

qt5.0环境中,移动版本需要的时间大概是拷贝版本的40%,也就是说,速度快了一倍以上。

相关文章

网友评论

      本文标题:c++入门之基础-对象

      本文链接:https://www.haomeiwen.com/subject/ihoerftx.html