C ++: o iterador da lista não é incrementável
Obter este erro ao tentar apagar o último elemento de uma lista. Eu depurei o código e consegui descobrir o que o causa e onde, eis o meu código:
for(Drop_List_t::iterator i = Drop_System.begin(); i != Drop_System.end() && !Drop_System_Disable; /**/)
{
if(Player->BoundingBox.Intersect(&(*i)->BoundingBox))
{
i = Drop_System.erase(i);
}
++i; //List iterator crashes here if last entry was deleted
}
Não consigo entender o que estou fazendo de errado ... Alguma sugestão?