STL中的remove问题

原创 2011年01月08日 23:57:00

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

STL中的remove问题

我将从remove的复习开始这个条款,因为remove是STL中最糊涂的算法。误解remove很容易,驱散所有关于remove行为的疑虑——为什么它这么做,它是怎么做的——是很重要的。 这是re...
  • weikangc
  • weikangc
  • 2015年11月04日 10:18
  • 324

C++使用STL:慎重选择删除元素的方法

原文出自: C++使用STL:慎重选择删除元素的方法   关于要删除容器中元素要选用什么样的方法(因为不同的容器所支持或删除的方法效率不同),总结如下: 假设容器:Containerc; ...
  • iFuMI
  • iFuMI
  • 2016年05月03日 18:03
  • 1035

C++中Vector的erase()操作以及与remove的区别

vector v; v.pushback(0); v.pushback(1); v.pushback(1); v.pushback(0); 想要删除值为1的元素 错误代码  vecto...
  • zzuchengming
  • zzuchengming
  • 2016年03月15日 13:05
  • 2238

STL算法---remove系列

remove ●接受的是前向迭代器,返回的也是前向迭代器。 ●移除但不删除。这个操作意思是原来那个位置的元素值改变了,但是该存储单元还是存在的。容器的大小不会发生变化。 ●可能会有残余数据。可以...
  • smbzy
  • smbzy
  • 2015年05月26日 23:40
  • 292

stl中的remove返回的是什么

我将从remove的复习开始这个条款,因为remove是STL中最糊涂的算法。误解remove很容易,驱散所有关于remove行为的疑虑——为什么它这么做,它是怎么做的——是很重要的。 这是re...
  • ChuJiangKeDeJiuShu
  • ChuJiangKeDeJiuShu
  • 2014年06月06日 11:44
  • 402

STL的remove算法详解

一、remove的声明: template ForwardIterator remove( ForwardIterator first,  ForwardIterator last,  const ...
  • wangdamingll
  • wangdamingll
  • 2016年12月14日 10:25
  • 119

STL的remove函数和list的remove成员函数

今天看书刚刚看的,就记录下来吧。这可能是老生常谈了,权且作为一个警醒的例子吧。 大家都知道STL有两个非常重要的组成部分,容器和算法。 算法就是一个个的函数,通过迭代器和容器关联在一起,完...
  • whatday
  • whatday
  • 2015年09月16日 22:17
  • 234

STL之remove算法详解

算法描述接口template ForwardIterator remove( ForwardIterator _First, ForwardIterator _Last, ...
  • xiao3404
  • xiao3404
  • 2015年12月27日 16:02
  • 410

stl中的remove返回的是什么

stl中的remove返回的是什么 2014-06-06 11:44 254人阅读 评论(0) 收藏 举报  分类: c++ 代码(65)  stl库学习(8)  ...
  • jfkidear
  • jfkidear
  • 2016年08月29日 08:39
  • 734

stl库remove()学习

我将从remove的复习开始这个条款,因为remove是STL中最糊涂的算法。误解remove很容易,驱散所有关于remove行为的疑虑——为什么它这么做,它是怎么做的——是很重要的。 这是re...
  • ChuJiangKeDeJiuShu
  • ChuJiangKeDeJiuShu
  • 2013年01月24日 11:08
  • 467
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STL中的remove问题
举报原因:
原因补充:

(最多只允许输入30个字)