Как стереть и удалить указатели на объекты, хранящиеся в векторе?

У меня есть вектор, в котором хранятся указатели на множество объектов, создаваемых динамически, и я пытаюсь перебрать вектор и удалить определенные элементы (удалить из вектора и уничтожить объект), но у меня возникли проблемы. Вот как это выглядит:

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

Когда какой-либо из объектов Entity достигает xPos> 1.5, программа падает с ошибкой утверждения ... Кто-нибудь знает, что я делаю неправильно?

Я использую VC ++ 2008.

Ответы на вопрос(5)

Ваш ответ на вопрос