我有一个指向类中其他"对象"的指针向量。
是否有任何方法,当这些对象之一被删除后,从vector中删除任何可能指向它的指针?
最好的方法是以某种方式传播删除,但是,无论何时遍历vector,只要知道对象已被删除也可以。
不要使用普通指针。使用std::shared_ptr
和std::weak_ptr
类代替。
shared_ptr
。只有当一个对象的shared_ptr
不再存在时,实际的对象才会被删除。任何仍然存在的weak_ptr
将返回一个计算为false
的对象。当这种情况发生时,你知道weak_ptr
可以从矢量中删除。
这就是std::weak_ptr
存在的原因。它不会停止删除,但会检测到。