我用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
这里在第二个参数中使用了一个引用。