关闭

STL中的remove问题

305人阅读 评论(0) 收藏 举报

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...)。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3600次
    • 积分:123
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    文章存档
    最新评论
  • 迷茫

    tuwenyang: 回复 a_110120:真的哟 不知兄台学的什么专业呢?能否说说你在大学和毕业后的不同

  • 迷茫

    a_110120: 回复 tuwenyang:看到了留个言,呵呵。大学千万不要迷茫,奋发向上,顽强拼搏。我也刚大学毕业,...

  • 迷茫

    tuwenyang: 回复 a_110120:多谢了。不知阁下是?能否交个朋友

  • 迷茫

    a_110120: 加油。