删除时使用erase() 然后迭代器++ 会出segment fault;
std::list<int> g_mylist;
std::list<int>::iterator my_itr;
for (my_itr = g_mylist.begin(); my_itr != g_mylist.end(); my_itr++)
{
g_mylist.erase(my_itr);
}
直接使用erase()返回的指针,erase()会返回下一个对象的指针。
for (my_itr = g_mylist.begin(); my_itr != g_mylist.end(); )
{
my_itr = g_mylist.erase(my_itr);
}