Удаление элемента из вектора, в то время как в C ++ 11 диапазон «для» цикла?

У меня есть вектор IInventory *, и я перебираю список, используя диапазон C ++ 11 для того, чтобы что-то делать с каждым.

После того, как вы поработаете с ним, я могу удалить его из списка и удалить объект. Я знаю, что могу позвонитьdelete на указатель в любое время, чтобы очистить его, но как правильно удалить его из вектора, находясь в диапазонеfor цикл? И если я удалю его из списка, мой цикл станет недействительным?

<code>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'...
}
</code>

Ответы на вопрос(10)

Ваш ответ на вопрос