请问一个STL的有关问题

请教一个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);
}