我使用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
公众可复制好?这里在第二个参数中使用了一个引用。
你想要一个行为像一个集合的向量?你有什么尝试? –