首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从嵌套迭代的列表中进行擦除

从嵌套迭代的列表中进行擦除
EN

Stack Overflow用户
提问于 2012-10-30 00:35:44
回答 1查看 81关注 0票数 0

假设您正在使用嵌套的for循环遍历列表,如下所示:

代码语言:javascript
复制
  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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-30 00:44:38

list:erase only invalidates the iterators pointing to the item being erased。因为iter不等于iter2,所以你应该没问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13125841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档