I use vector<unique_ptr<Data>>
存储我的数据,以实现自动内存管理和低成本unique_ptr
。我有一个函数可以尝试将新创建的数据添加到其中。数据可能真的添加,也可能没有。如果添加了它,我不需要关心它的内存删除,因为指针向量会处理它。如果不添加的话,希望新创建的数据能够自动删除。有什么简单的方法可以实现吗?该函数可能如下所示或其他类似的形式。谢谢。
// Return true if really added, return flase if not.
bool add(vector<unique_ptr<Data>>& vec, Data* newData);
根据戴夫的回答,是bool add(vector<unique_ptr<Data>>& vec, std::unique_ptr<Data>& newData)
自从以后更好unique_ptr
非公开复制?这里第二个参数中使用了引用。
Accept newData
as a unique_ptr
too.
bool add(vector<unique_ptr<Data>>& vec, std::unique_ptr<Data> newData)
{
if(blah blah blah)
{
vec.push_back(std::move(newData));
return true;
}
return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)