我有一个向量:
std::vector<std::unique_ptr<myClass>> vec;
//filling the vector
vec.push_back(std::unique_ptr<myClass>(new myClass()));
vec.push_back(std::unique_ptr<myClass>(new myClass()));
vec.push_back(std::unique_ptr<myClass>(new myClass()));
myClass
我需要一个不需要担心所有权的特定实例的句柄,例如:
std::unique_ptr<myClass>& myInstance;
问题是在运行时myInstance
需要指向不同的实例。myClass
我知道我可以使用std::shared_ptr
,但我想保留它们std::unique_ptr
,因此如果添加了已初始化的内容,则所有权将转移到vec
.
我应该如何保留指向 a 的指针std::unique_ptr
?
此外,在这里使用原始指针会被认为是不好的做法吗?指针不需要管理任何资源,但我不希望我的代码变得混乱。