關於vector中erase,刪除元素的考量

int main()
{
int ia[]={0,1,1,2,4,3,5,8,13,21,55,89};
vector<int> ivec(ia,ia+12);
list<int> ilst(ia,ia+12);


for(vector<int>::iterator iter=ivec.begin();
iter!=ivec.end();)
{
if(*iter%2==0)
iter=ivec.erase(iter);
else
iter++;//這裏要注意,刪除的時候不加指針,不刪除才增加指針
}
for(vector<int>::iterator iter=ivec.begin();
iter!=ivec.end();++iter)
cout<<*iter<<endl;
return 1;

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章