Removendo item do vetor, enquanto no C ++ 11 range 'for' loop?
Eu tenho um vetor de IInventory *, e estou fazendo um loop através da lista usando o C ++ 11 para fazer coisas com cada um.
Depois de fazer algumas coisas com um, talvez queira removê-lo da lista e excluir o objeto. Eu sei que posso ligardelete
no ponteiro a qualquer momento para limpá-lo, mas qual é a maneira correta de removê-lo do vetor, enquanto estiver no intervalofor
loop? E se eu removê-lo da lista, meu loop será invalidado?
<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>