将向量中的unique_ptr对象替换为另一个unique_ptr



我想用另一个对象替换该索引处的unique_ptr对象,这本质上是"删除"当前矢量中的指针,并将classObj移动到该位置。

std::unique_ptr<ClassName> classObj(new className());
classNameStorage[5] = classObj; // classNameStorage.size() > 5

上面使用赋值运算符的代码无效。

classNameStorage[5] = std::move(classObj);

std::unique_ptr是一个只移动的类。因此,在实例具有名称(即左值)的情况下,必须将其封装在std::move中("转换"为右值>)才能移出数据。

请参阅此处了解更多详细信息。

相关内容

  • 没有找到相关文章

最新更新