这篇文章主要介绍c++11新标准中移动语义与右值引用是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1.移动语义
C++11新标准中一个最主要的特性就是提供了移动而非拷贝对象的能力。如此做的好处就是,在某些情况下,对象拷贝后就立即被销毁了,此时如果移动而非拷贝对象会大幅提升性能。参考如下程序:
//moveobj.cpp #include#include using namespace std; class Obj { public: Obj(){cout <<"create obj" << endl;} Obj(const Obj& other){cout<<"copy create obj"< foo() { vector c; c.push_back(Obj()); cout<<"---- exit foo ----"< v; v=foo(); }