我很想问这是不是一个好习惯。让我们假设这种情况:
std::vector<unique_ptr<Model>> data;
使用此向量中的原始指针(向量中每个unique_ptr的原始指针)是否安全?我理解,当超过保留空间时,向量可能会重新分配数据,但这只会影响unique_ptr的地址,同时保证内部原始指针保持不变?
因此,通过使用那些原始指针而不是添加一些id成员来识别模型是否安全?
更具体地说,将这些原始指针用作地图中的键是否可以?我需要从向量中对包含模型指针(作为成员)的对象进行排序,并使具有相同模型的对象组成组。
我知道我可以使用像索引这样的句柄到向量或唯一ID,但这可能是一个无用的开销。我问的原因是,取决于指针地址对我来说感觉不安全: - )
答案 0 :(得分:3)
是的!那没关系:)
请像往常一样确保对象比指针更长。