我想用另一个对象替换该索引处的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
中("转换"为右值>)才能移出数据。
请参阅此处了解更多详细信息。