stl之remove()

本文详细介绍了STL中的remove()算法,包括其功能、参数、返回值、时间复杂度以及注意事项。remove()算法会移除指定区间内与给定值相等的元素,并保持未移除元素的相对顺序。虽然不适用于关联式容器,但它是对序列容器如vector和list等进行元素移除的有效工具,其时间复杂度为O(n)。
摘要由CSDN通过智能技术生成

1.stl 算法:算法通过迭代器对容器区间的数据元素进行操作。stl中算法包含在头文件<algorithm>中,都是全局函数通过迭代器可应用在任何stl容器中。在使用stl算法时,我们必须明白算法是一个函数,所以我们得明白(1)函数的功能(2)函数的参数(3)函数的返回值是什么(4)时间空间复杂度如何。

2.下面我们首先介绍下:manipulatingalgorithm(更改型算法)也就是说,这些算法会对容器区间中的数据元素进行删除和修改,重排的算法。这里以 移除性算法(Removing  algorithms)为例进行讲解。

(1)什么是 移除性算法(Removing Algorithms)?
移除性算法是指根据元素值或者某一准则,在一个区间内移除某些元素。但是移除性算法并不能改变元素的数量,它们只是逻辑上的思考,将原本至于后面的“不移除的元素”向前移动,覆盖那些被移除的元素。移除性算法都返回新区间的逻辑终点。我们知道,stl处理的区间都是半开区间,所以这里的逻辑终点是最后一个 “不移除元素”的下一位置。所以说,移除性算法并没有内存的分配与回收,只是逻辑上对容器进行了修改。

(2)stl中移除性算法有哪些?

(1)移除某序列的元素:remove(),remove_if()(2)复制时一并移除元素 remove_copy(), remove_copy_if()(3)移除连续重复元素 unique();


3.下面从(1)函数声明(2)函数功能(3)函数参数(4)返回值(5)时间

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值