STL中的remove问题
2011-01-08 23:57
148 查看
STL中有个通用算法remove,remove在对list进行修改时,如定义好了一个容器coll,remove(coll.begin(),coll.end(),n));经过这个操作之后,在对不了解STL的人眼中,容器中 的n元素被删除,容器的size肯定也减少相应的个数。但是,情况并不是这样,经过remove操作后,容器中有变化时肯定的,但是,容器的个数并没有变化,变化的是容器中的顺序。
remove对容器(这里单纯指list,其他容器还没有试过的)操作后具体的改变如下:如remove(coll.begin(),coll.end(),n)),在这之后,容器的个数不变,remove对容器中的n元素进行删除,n的位置被后一个元素代替,然后容器中若n出现的次数是2,那么,remove返回的是之前容器中的最后一个元素,但是这个元素和修改后的容器中的最后那个元素距离相差正好是2(如果n出现的次数是3,4...,那距离相差一次类推),而出现的元素是相应的最后2个数(3,4...)。
remove对容器(这里单纯指list,其他容器还没有试过的)操作后具体的改变如下:如remove(coll.begin(),coll.end(),n)),在这之后,容器的个数不变,remove对容器中的n元素进行删除,n的位置被后一个元素代替,然后容器中若n出现的次数是2,那么,remove返回的是之前容器中的最后一个元素,但是这个元素和修改后的容器中的最后那个元素距离相差正好是2(如果n出现的次数是3,4...,那距离相差一次类推),而出现的元素是相应的最后2个数(3,4...)。
相关文章推荐
- STL中的remove问题
- STL中的remove问题
- STL中的remove问题
- STL的list的erase问题
- 要不要用STL的问题——真理是越辩越明的~
- STL的remove函数和list的remove成员函数
- List remove操作注意问题
- Windows 下git 环境搭建 与Git could not read from remote reposito问题处理Could not remove config ,gitHup删除仓库
- STL中vector向量初始化问题
- STL——全排列问题
- STL 之remove,remove_if,remove_copy,remove_copy_if
- List中使用remove出错的问题分析
- STL Vector remove()和erase()的使用
- STL删除vector或list的方法及注意的问题
- vs2012安装cocos2d-x环境搭建中出现的与stl版本不兼容问题
- foreach中使用remove问题
- C++面试题(三)——STL相关各种问题
- C++ HOJ 约瑟夫问题 的 数组、链表及STL实现
- 关于List.remove在for循环中出现问题的解决方案
- 关于List的一个小问题——remove()函数