牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2014-12-04 投稿人: 浏览次数:3262
转自: 

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

}

}



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。