【发布时间】:2013-12-10 17:29:30
【问题描述】:
我有一个关于如何将std::unique_ptr 插入std::vector 的问题。想象一下,我有一个产生如下对象的函数:
std::unique_ptr<CObject> createObjects()
{
return std::unique_ptr<CObject> (new CObject());
}
现在在我的代码中,我有一个 std::vector<std::unique_ptr<CObjects>> vec 并插入如下元素:
vec.push_back(createObjects());
现在我的问题是:unique_ptr 是移动到向量中还是被复制?
【问题讨论】:
-
emplace_back在这里更合适。 -
你的意思是
std::vector<std::unique_ptr<CObject>>? -
对不起!这就是我的意思。我改变了它。 @user2485710:
emplace_back看起来很有趣,但我认为我不能在我的应用程序中使用它,因为我有一个模板可以创建从基类继承的对象并返回指向基类的唯一指针。向量存储这些。
标签: c++ c++11 vector stdvector unique-ptr