对于C++中的STL,push_back()和emplace_back()有什么区别?
1.push_back():
·语法为:container.push_back(),接收一个值或一个对象的移动/复制副本;
·在将对象添加或移动到容器的末尾前,需要先调用构造函数实例化对象,然后再执行移动或复制操作。
2.emplace_back():
·语法为:container.emplace_back(args...),接收一个对象构造函数的参数列表;
·直接在容器的内存上调用构造函数,省去了复制或移动的过程。
3.性能:
一般来说emplace_back()的性能是要优于push_back()的,因为它避免了多余的移动和复制操作。