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

std:list在迭代过程中怎么删除元素

2012-04-23 
std::list在迭代过程中如何删除元素?C/C++ codefor (std::listx::iterator i x_list.begin() i ! m_

std::list在迭代过程中如何删除元素?

C/C++ code
for (std::list<x>::iterator i = x_list.begin(); i != m_list.end(); i++){    //dosomething();    //迭代到第n个元素,发现这个元素已经无效,需要删除。    //那么我们如何删除这个元素?    //如果直接在这个循环中删除,会使迭代器失效}


[解决办法]
C/C++ code
for (std::list<x>::iterator i = x_list.begin(); i != m_list.end(); /*i++  // 这里去掉*/){    if (元素失效)    {        x_list.erase(i++);   //使用后缀++    }    else    {        ++i;    }} 

热点排行