push_back和emplace_back的区别
时间: 2024-03-06 20:42:05 浏览: 61
C++ 中"emplace_back" 与 "push_back" 的区别
push_back和emplace_back都是向容器的尾部添加元素,但它们的实现方式不同。push_back需要将要添加的元素拷贝或移动到容器中,而emplace_back则是在容器尾部直接构造元素,避免了拷贝或移动的开销,因此emplace_back的效率更高。同时,由于emplace_back是在容器内部直接构造元素,所以可以使用可变参数模板将参数直接传递给元素的构造函数,而push_back则需要先构造一个临时对象再添加到容器中。
阅读全文