STL算法主要是我们强大的标准库中以迭代器或数值或函数对象为参数预先定义好的一系列算法操作。
在STL算法分类中首先要提的就是两个普遍存在的后缀:
_if
_copy
其中这两个后缀的作用分别是:一、对于_if,如果算法存在两种形式,参数的个数相同,其中一种形式的参数要求传递一个值,而另一种形式则会要求传递一个函数或仿函数(函数对象),那么则没有_if后缀的形式要求传递数值,有_if后缀的则要求传递函数。而且传递的函数一般都会是一个一元或二元的判别式。二、_copy后缀则表示在此算法中元素在被复制到目标区间的同时会被处理,而源序列则保持不变。
除此之外,STL算法可以按照其操作的特性分为一下几个类别:
一、非变动性算法
非变动性算法主要是指不会改变元素的次序和改变元素值的操作,典型的操作是:计数count、求最值(min_element,max_element)、搜寻某个特定元素find、搜寻某段特定元素sear