¿Cómo borrar y eliminar punteros a objetos almacenados en un vector?
Tengo un vector que almacena punteros a muchos objetos instanciados dinámicamente, y estoy tratando de iterar a través del vector y eliminar ciertos elementos (eliminar del vector y destruir el objeto), pero tengo problemas. Así es como se ve:
vector<Entity*> Entities;
/* Fill vector here */
vector<Entity*>::iterator it;
for(it=Entities.begin(); it!=Entities.end(); it++)
if((*it)->getXPos() > 1.5f)
Entities.erase(it);
Cuando alguno de los objetos Entity llega a xPos> 1.5, el programa se bloquea con un error de afirmación ... ¿Alguien sabe lo que estoy haciendo mal?
Estoy usando VC ++ 2008.