How to erase & delete pointers to objects stored in a vector?
You need to be careful because erase() will invalidate existing iterators. However, it will return a new valid iterator you can use: for ( it = Entities.begin(); it != Entities.end(); ) { if( (*it)->getXPos() > 1.5f ) { delete * it; it = Entities.erase(it); } else { ++it; } }