¿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.

Respuestas a la pregunta(10)

Su respuesta a la pregunta