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