我很想問這是否是一種好的做法。讓我們假設這樣的場景:使用unique_ptr矢量的原始指針作爲排序的ID
std::vector<unique_ptr<Model>> data;
它是安全與此向量(原始指針從向量中的每個的unique_ptr)的原始指針工作?我明白,當超過保留空間時,向量可能會重新分配數據,但只會影響unique_ptr的地址,而內部原始指針保證保持不變。
因此,通過使用這些原始指針而不是添加一些id成員來識別模型是否安全?
更具體地說,可以將這些原始指針用作地圖中的關鍵點嗎?我需要從vector中對包含模型指針(作爲成員)的對象進行排序,並使用相同的模型對對象進行分組。
我知道我可以使用像索引一些句柄到矢量或唯一的ID,但這可能是無用的開銷。我問的原因是,根據指針地址感覺某種程度上對我不安全:-)
是的,它是安全的。即使向量重新分配,unique_ptrs中的底層指針也不會改變。 – CoryKramer
@CoryKramer謝謝你! – Hitokage