0

假设您正在使用这样的嵌套 for 循环遍历列表:

  for( list<Object>::iterator iter = list.begin() ; iter != list.end() ; ++iter )
  {
    for( list<Object>::iterator iter2 = list.begin() ; iter2 != list.end() ; ++iter2 )
    {
      if( iter != iter2 )
      {
        if( some other condition )
        { 
          iter2 = list.erase( iter2 ) ; 
          // uh oh! what about iter?
        }
      }
    }
  }

怎么保养iter

4

1 回答 1

4

list:erase 仅使指向被擦除项目的迭代器无效。由于iter不等于iter2,你应该没问题。

于 2012-10-29T16:44:38.230 回答