C++雾中风景9:emplace_back与可变长模板
C++11的版本在vector容器添加了emplace_back方法,相对于原先的push_back方法能够在一定程度上提升vector容器的表现性能。所以我们从STL源码角度来切入,看看这两种方法有什么样的区别,新引进的方法又有什么可学习参考之处。 1.emplace_back的用法 emplace_back方法最大的改进就在与可以利用类本身的构造函数直接在内存之中构建对象,而不需要调用类的拷贝构造函数与移动构造函数。 举个栗子,假设如下定义了一个时间类time,该类同时定义了拷贝构造函数与移动构造函数: class time { private: int hour; int minute; int second; public: time(int h, int m, int s) :hour(h), minute(m), second(s) { } time(const time& t) :hour(t.hour), minute(t.minute), second(t.second) { cout << "copy" << endl; } time...


