好像是一个关于C++作用域的问题
std::list < int > g_IDList;
void DeleteIDFromList( int _ID )
{
std::list < int > ::iterator itor= g_IDList.begin();
std::list < int > ::iterator itor_e
= g_IDList.end();
for( ; itor != itor_e ; ++itor )
{
if( *itor == _ID ) { g_IDList.erase( itor ); }
}
}
看一下这段程序错在那里,有什么用.谢谢
[解决办法]
if( *itor == _ID ) { g_IDList.erase( itor ); }
==》
if( *itor == _ID ) { itor = g_IDList.erase( itor ); } //使用新的返回的迭代器