12
从向量中删除项目,而在C ++ 11范围“ for”循环中?
我有一个IInventory *的向量,并且正在使用C ++ 11范围遍历该列表,以便对每个对象进行处理。 在处理完一个东西之后,我可能想将其从列表中删除并删除该对象。我知道我可以随时调用delete指针进行清理,但是在范围for循环中将其从向量中删除的正确方法是什么?如果我从列表中删除它,我的循环是否将无效? std::vector<IInventory*> inv; inv.push_back(new Foo()); inv.push_back(new Bar()); for (IInventory* index : inv) { // Do some stuff // OK, I decided I need to remove this object from 'inv'... }