首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请问一个STL的有关问题

2012-02-17 
请教一个STL的问题我创建一个list并用iterator删除里面的元素list intilistfor(inti0i 11i++){ilis

请教一个STL的问题
我创建一个list   并用iterator   删除里面的元素

list <int>   ilist;
for(   int   i=0;i <11;i++)
{
        ilist.push_back(   i   )   ;
}
list <   int   > ::iterator   iter;
iter   =   ilist.begin();
for(   iter=ilist.begin();   iter   !=   ilist.end()   ;   ++iter   )
{
        ilist.erase(iter);
}

上面的代码,为什么我erase一次后就包错了,请教是哪写错了

[解决办法]
list 删除之后,元素会移动
所以要从后面开始删除
或者直接 clear
[解决办法]
删除以后iter失效
for( iter=ilist.begin(); iter != ilist.end() ; /*++iter*/ )
{
iter = ilist.erase(iter);
}

热点排行