STL算法简介

    STL算法是通用的:每个算法都适合于若干种不同的数据结构,而不仅仅能够用于一种数据结构。算法不是直接使用容器作为参数,而是使用迭代器类型。这样用户就可以自己在自己定义的数据结构上应用这些算法,仅仅需要这些自定义的容器的迭代器类型满足算法要求。STL中几乎所有算法的头文件都是<algorithm>。

   STL标准模板库中的算法大致可以分为4类。第一类是非可变序列的算法(Non-modifying sequence operations)。通常,这类算法在对容器进行操作的时候不会改变容器的内容。第二类是可变序列的算法(modifying sequence operations),这类算法一般会改变它们所操作的内容。第三类是排序相关算法,包括排序算法和合并算法、二分查找算法以及有序序列的集合操作算法等。最后一类是通用数值算法,这类算法的数量比较少。

    下面对这些类型算法的一个统计列表:

 

一、非可变序列的算法(Non-modifying sequence operations

(1)for_each        对区间内的每个元素进行某操作

(2)find            循环查找

(3)find_if         循环查找符合特定条件者

(4)find_end        查找某个子序列的最后一次出现的位置

(5)find_first_of   查找某些元素的首次出现的位置

(6)adjacent_find   查找相邻而重复的元素

(7)count           计数

(8)count_if        在特定条件下计数

(9)mismatch        找出不匹配点

(10)equal          判断两个区间是否相等

(11)search         查找某个子序列

(12)search_n       查找连续发生n次的自序列

 

下面对本类的每个元素做相应的解释,并且给出一些例子,以作使用参考,接下一篇.......

 

说明:本系列的文章来自两个地方:(1)《C++语言程序设计》第四版      (2)C/C++官网,

记录这些的主要目的是:想记下自己看到的东西,写一下加深印象,也为了以后方便查找。最重要的是记一些笔记心里感觉比较踏实,如若有不对的地方,请指正,呵呵。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值