Como apagar e excluir ponteiros para objetos armazenados em um vetor?

Tenho um vetor que armazena ponteiros para muitos objetos instanciados dinamicamente e estou tentando percorrer o vetor e remover certos elementos (remover do vetor e destruir o objeto), mas estou tendo problemas. Aqui está o que parece:

    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);

Quando qualquer um dos objetos Entity chega ao xPos> 1.5, o programa trava com um erro de declaração ... Alguém sabe o que estou fazendo de errado?

Estou usando o VC ++ 2008.

questionAnswers(10)

yourAnswerToTheQuestion