如何在没有构造函数参数的情况下将对象置于STL constainer中?

pku*_*bik 1 c++ containers stl emplace

假设我有一个没有参数的构造函数的类,以及它的对象的STL容器:list<Object> lst;有没有办法在适当的位置插入新对象?

我知道类似的东西lst.push_back(Object());会起作用,同样快速,因为它会使用移动构造函数,但似乎有点奇怪的是,没有任何函数可以简单地在列表的末尾创建新对象而没有任何参数,而已经存在安装那可能适合那个地方.

请问,如果实际上不可能,请提供一些解释?

JBL*_*JBL 7

好吧,emplace_back()就是这样.

只需使用lst.emplace_back();,该功能将在列表末尾创建一个对象.