<queue> 的 emplace 和 push 的区别

Difference between <queue>'s emplace and push

<queue>的emplace和push有什么区别?

这里是关于 std::queue::emplacestd::queue::push 的解释 .

这两种方法都在其当前最后一个元素之后添加元素,return None

push() 将已构造对象的副本作为参数添加到队列中,它采用队列元素类型的对象。

emplace() 在队列末尾就地构造一个新对象。它将队列的元素类型构造函数采用的参数作为参数。

如果您的使用模式是创建新对象并将其添加到容器中,则可以使用 emplace() 简化几个步骤(创建临时对象并复制它)。