一 概述:
(1)算法的一般形式:
*所有泛型算法的前两个参数都是一对迭代器,通常称为first和last,用以标示算法的操作区间。
*这个[first,last)区间的必要条件是,first必须能够经由累加(increment)操作符的反复运用,从first到达list。
*任何一个STL算法的声明都,都表现出它所需要的最低程度的迭代器类型。
*许多的STL算法不只支持一个版本,某个版本采用缺省运算行为,另外一个版本提供一个额外参数,接受外界传入的一个函数对象,以便采取其他策略。
(2)头文件(<numeric>和<algorithm>)
*所有数值算法都实际定义于<stl_numeric.h>文件中,这个文件是内部文件,STL用户使用时需#include<numeric>。
*<algorithm>文件内容如下:
#include <bits/stl_algobase.h>
#include <bits/stl_algo.h>
#include <bits/stl_construct.h>
#include <bits/stl_uninitialized.h>
其中SGI STL把一些常用的算法定义于<stl_algobase.h>,其它算法定义于<stl_algo.h>中。
二 具体算法综述: