У меня есть вектор, который хранит указатели на многие объекты, создаваемые динамически, и я пытаюсь выполнить итерацию по вектору и удалить определенные элементы (удалить из вектора и уничтожить объект), но у меня возникают проблемы. Вот как это выглядит:
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, программа вылетает с ошибкой утверждения... Кто-нибудь знает, что я делаю неправильно?
Я использую VС++ 2008.