转自:
http://ecnuloveexpo.blog.163.com/blog/static/1219589962012924113456858/
使用iterator迭代器对vector进行遍历,删除元素时使用的erase函数返回的是vector中的下一个元素。
代码如下:
/* ObjectVector是一个Object类型的迭代器,轮询ObjectVector,如果Object::IsAlive()返回false则从vector中删除该Object */
vector<Object*>::iterator it = ObjectVector.begin();
while(it != ObjectVector.end()){
if((*it)->IsAlive()){
it++;
}else{
it = ObjectVector.erase(it);
}
}