我用它vector<unique_ptr<Data>>来存储我的数据,用于自动内存管理和低成本unique_ptr.我有一个函数来尝试将新创建的数据添加到其中.可以真实地添加或不添加数据.它被添加,我不需要关心它的内存删除,因为指针向量将处理它.如果没有添加,我希望可以自动删除新创建的数据.有没有简单的方法来实现它?该功能可能如下所示或其他类似形式.谢谢.
// Return true if really added, return flase if not.
bool add(vector<unique_ptr<Data>>& vec, Data* newData);
Run Code Online (Sandbox Code Playgroud)
根据Dave的回答,bool add(vector<unique_ptr<Data>>& vec, std::unique_ptr<Data>& newData)自unique_ptr非公共可复制以来更好吗?这里引用用于第二个参数.