我很想问这是否是一个好的做法。让我们假设这种情况:
std::vector<unique_ptr<Model>> data;
使用此 vector 中的原始指针( vector 中每个 unique_ptr 的原始指针)是否安全?我知道 vector 在超出保留空间时可能会重新分配数据,但这只会影响 unique_ptr 的地址,而内部原始指针保证保持不变,对吗?
因此,使用这些原始指针而不是添加一些 id 成员来识别模型是否安全?
更具体地说,可以使用这些原始指针作为映射中的键吗?我需要对 vector 中包含模型指针(作为成员)的对象进行排序,并将具有相同模型的对象分组。
我知道我可以使用一些句柄,例如 vector 索引或唯一 ID,但这可能是无用的开销。我问的原因是依赖指针地址对我来说感觉不安全:-)
最佳答案
是的!没关系:)
像往常一样,确保对象比它们的指针更长寿。
关于c++ - 使用来自 unique_ptr vector 的原始指针作为排序的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46829019/