STL中用ERASE()方法遍历删除元素

来源:互联网 发布:格力六轴机器人编程 编辑:程序博客网 时间:2024/06/06 01:25
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。

      在使用 list、set 或 map遍历删除某些元素时可以这样使用:

方法一:

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++;}
方法二:

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



0 0
原创粉丝点击