区别
都说emplace快push慢,今天就详细研究下到底两者有什么区别,以及这个move在中间扮演了一个什么角色。
先上测试代码,是一个自己手写的str字符串类,几种构造函数,都写全了:
class str {
public:
friend ostream& operator <<(ostream& out, const str& p);
str() :data(nullptr), len(0) {
}
//构造函数
str(const char* p) {
len = strlen(p);
data = new char[len + 1];
strcpy(data, p);
cout << "执行了char * 的构造函数" << endl;
}
//拷贝构造函数