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

【疑问】关于STL中list的的增添、删除解决办法

2012-03-05 
【疑问】关于STL中list的的增添、删除//attribute是一个自定义的结构list attributel_popo//定义一个list

【疑问】关于STL中list的的增添、删除
//attribute是一个自定义的结构
list <attribute>   l_popo;//定义一个list容器

...

//按下空格键时向list内增添一个元素,att是attribute类型的变量
l_popo.push_back(att);

...

//在程序循环中,用for循环遍历该list
for(list <attribute> ::iterator   iter=l_popo.begin();iter!=l_popo.end();++iter)
{
        if(/*满足某条件时*/)
      {
              l_popo.erase(iter);//?????问题就在这儿,为什么这里一删除就会出错呢?
      }
}


//---------------------------
新手初学,望各位达人、高手不吝赐解
//---------------------------

[解决办法]
//在程序循环中,用for循环遍历该list
for(list <attribute> ::iterator iter=l_popo.begin();iter!=l_popo.end();)
{
if(/*满足某条件时*/)
{
iter = l_popo.erase(iter);//这样就没问题了
}
else
++iter;
}

热点排行