C++ vector一边遍历一边删除元素

使用iterator迭代器对vector进行遍历,删除元素时使用的erase函数返回的是vector中的下一个元素。
代码如下:
 
    

/* ObjectVector是一个Object类型的迭代器,轮询ObjectVector,如果Object::IsAlive()返回false则从vector中删除该Object */

vector::iterator it = ObjectVector.begin();

while(it != ObjectVector.end()){

if((*it)->IsAlive()){

it++;

}else{

it = ObjectVector.erase(it);

}

}



你可能感兴趣的:(C++)