技术在于交流、沟通,本文为博主原创文章转载请注明出处并保持作品的完整性
C++11新增move()语法(我暂时交错右值引用),在前面我有一篇文章叫 C++11_右值引用 简单的介绍了右值引用类的实现,这节我主要介绍一下为什么move()会更高效.
这次主要以一个带右值引用的Person类,和vector做测试
首先我们先实现一个带右值引用的Person类
class Person { public: static size_t DCtor; //记录默认构造函数调用次数 static size_t Ctor; //记录构造函数调用次数 static size_t CCtor;//记录拷贝函数调用次数 static size_t CAsgn;//记录赋值拷贝调用次数 static size_t MCtor;//记录move 构造调用次数 static size_t MAsgn;//记录move 赋值调用次数 static size_t Dtor;//记录析构函数调用次数 private: int _age; char* _name; size_t _len; void _test_name(const char *s) { _name = new char[_len+1]; memcpy(_name, s, _len); _name[_len] = '