C++STL算法

本文详细介绍了C++标准库中的七大类算法:不变序列算法、变值算法、删除算法、变序算法、排序算法、有序区间算法及数值算法。每类算法的特点、适用容器及其时间复杂度均有所涉及。

1、不变序列算法

不会修改算法所作用的容器或对象 适用于顺序容器关联容器,时间复杂度为O(n)。

2、变值算法

会修改源区间或目标区间元素的值,值被修改的那个区间,不可属于关联容器

3、删除算法

删除一个容器里的某些元素,但不会使容器里的元素减少,删除算法不应作用于关联容器。

将所有应该被删除的元素看做空位子;用留下的元素从后往前移, 依次去填空位子 ;元素往前移后, 它原来的位置也就算是空位子,也应由后面的留下的元素来填上;最后, 没有被填上的空位子, 维持其原来的值不变。算法复杂度都是O(n)。

4、变序算法

改变容器内元素的顺序,但不改变元素的值。不适用于关联容器,算法复杂度都是O(n)。

5、排序算法

比前面的变序算法复杂度更高, 一般是O(nlog(n)),排序算法需要随机访问迭代器的支持,不适用于关联容器和list。

6、有序区间算法

lower_bound upper_boud equal_range等

7、数值算法

转载于:https://www.cnblogs.com/zhuzhudong/p/10850485.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值