vector 使用push_back 和emplace_back的区别

Posted 森明帮大于黑虎帮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector 使用push_back 和emplace_back的区别相关的知识,希望对你有一定的参考价值。

push_back 和emplace_back

vector 中 emplace_back和push_back的区别:

1.push_back() 向容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或者移动到容器中(如果是拷贝的话,事后会自行销毁先前创建的这个元素);而emplace_back() 在实现时,则是直接在容器尾部创建这个元素,省去了拷贝或移动元素的过程。

2.若vector<pair<,>>这种情况 push_back({x.y}) 要以pair的格式添加, 而emplace_back(x,y) 不需要加{}

以上是关于vector 使用push_back 和emplace_back的区别的主要内容,如果未能解决你的问题,请参考以下文章

.push_back 如何在 C++ 中工作?

正确使用用户定义类型的 std::vector.push_back()

想简化我的 std::vector push_back 使用

运行时错误:将 .push_back() 与 std::vector 一起使用时访问冲突?

vector的使用注意事项

C++ vector遍历删除