zoukankan      html  css  js  c++  java
  • C++List、iterator与erase()方法的使用

    erase()方法是删除iterator指定的节点  但是要注意的是在执行完此函数的时候iterator也被销毁了   这样的话关于iterator的操作就会报错     以下是关于erase()方法的正确使用

    正确使用方法1      std::list< int> List;
          std::list< int>::iterator itList;
          for( itList = List.begin(); itList != List.end(); )
          {
                if( WillDelete( *itList) )
                {
                   itList = List.erase( itList);
                }
                else
                   itList++;
          }


    正确使用方法2      std::list< int> List;
          std::list< int>::iterator itList;
          for( itList = List.begin(); itList != List.end(); )
          {
                if( WillDelete( *itList) )
                {
                   List.erase( itList++);
                }
                else
                   itList++;
          }

    错误使用方法1

          std::list< int> List;
          std::list< int>::iterator itList;
          for( itList = List.begin(); itList != List.end(); itList++)
          {
                if( WillDelete( *itList) )
                {
                   List.erase( itList);
                }
          }

    错误使用方法2      std::list< int> List;
          std::list< int>::iterator itList;
          for( itList = List.begin(); itList != List.end(); )
          {
                if( WillDelete( *itList) )
                {
                   itList = List.erase( ++itList);
                }
                else
                   itList++;
          }

  • 相关阅读:
    #{}和${}的区别
    Shiro 的优点
    SpringSecurity 和 Shiro的之间的比较
    shiro的组件
    Apache Shiro 的三大核心组件
    Maven的工程类型有哪些?
    Maven仓库是什么
    什么是Maven?
    shiro有哪些组件?
    Apache Shiro 的三大核心组件
  • 原文地址:https://www.cnblogs.com/ZhenXin0101/p/14105089.html
Copyright © 2011-2022 走看看