这段代码到底哪里错了?很简单的,帮忙看看!
用单个iterator形式的erase()删除ilist中所有奇数位置的元素。
编译没有问题,一运行就非法操作!#include<iostream>
#include<list>
using namespace std;
void main()
{
int ia[]={0,1,1,2,3,5,8,13,21,55,89};
list<int> ilist(ia,ia+11);
list<int>::iterator iter=ilist.begin();
for(;iter!=ilist.end();++iter)
cout<<(*iter)<<" ";
iter=ilist.begin();
while(iter!=ilist.end())
{
ilist.erase(++iter);
}
iter=ilist.begin();
for(;iter!=ilist.end();iter++)
cout<<(*iter)<<" ";
}