我有一个管理器类,其中包含一个指向虚拟基类的指针向量,以允许将各种子类存储在那里。在这个管理器类的析构函数中,我希望它循环遍历它持有的所有指针并删除它们。但是,我尝试了许多我遇到的方法,并且程序在执行过程中不断崩溃。
我拥有的当前代码如下所示: -
for (std::vector<GameState*>::iterator it = gamestates_.begin(); it != gamestates_.end(); ++it){
delete *it;
it = gamestates_.erase(it);
}
我还没有尝试过的一件事是使用 unique_ptr 但我确信这应该能够在不使用它们的情况下处理它。如果我错了,请纠正我。
编辑:我知道我应该在循环之后清除向量,但这是我在尝试了所有删除指针的正常方法后得出的结果。它似乎不喜欢删除命令。