emplace_back为什么比push_back快这么多?

push_back:

因为push_back要求输入的参数是一个已经存在的对象。 当输入的参数,不是这样的对象时,会调用对应类的构造函数,构造一个临时的对象。
然后把这个对象执行拷贝构造函数或者移动构造函数插入到vector中。

emplace_back

emplace_back可以直接使用参数,在本地构建对象。这样一来,只需要调用构造函数,没有调用拷贝构造函数或者移动构造函数的过程。

参考资料:

https://blog.csdn.net/yockie/article/details/52674366

https://blog.csdn.net/qq844352155/article/details/38636715

你可能感兴趣的:(C/C++)