读书人

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

发布时间: 2012-04-23 13:17:38 作者: rapoo

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;    }} 

读书人网 >C++

热点推荐