在STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector、deque);另一类是以不连续节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。
list, set, map容器
在使用list、set或map遍历删除某些元素时可以这样使用:
//正确方法1 std::list<int> List; std::list<int>::iterator itList; for(itList = List.begin(); itList != List.end();) { if(WillDelete( *itList)) { itList = List.erase(itList); //通过erase方法的返回值来获取下一个元素的位置 } else itList++; } //正确方法2 std::list<int> List; std::