为了处理容器内的元素,STL提供了一些标准算法,包括查找、排序、拷贝、重新排序、修改、数值运算等基本而普遍的算法。算法并非容器内的成员函数,而是一种搭配迭代器使用的全局函数。这么做有一个重要的优势,所有算法只需要实现一份,就可以对所有容器运作,不必为每一种容器量身定做。
1、非更易型算法
非更易型算法既不改动元素的次序,也不改动元素值。
for_each() | 对每个元素执行某操作 |
count() | 返回元素的个数 |
count_if() | 返回满足某一准则(条件)的元素个数 |
min_element() | 返回最小元素值 |
max_element() | 返回最大元素值 |
minmax_element() | 返回最小值和最大值元素 |
find() | 查找“与被传入值相等”的第一个元素 |
find_if() | 查找“满足某个准则”的第一个元素 |
find_if_not() | 查找“不满足某个准则”的第一个元素 |
search_n() | 查找“具备某特性”之前的n个连续元素 |
search() | 查找某个子区间第一次出现位置 |
find_end() | 查找某个子区间最后一次出现位置 |
find_first_of() | 查找“数个可能元素的第一个出现者” |
adjacent_find() | 查找连续两个相等的元素 |
equal() |
判断两区间是否相等 |
is_sorted() | 返回“是否区间内的元素已排序” |
is_heap() | 返回“是否区间内的元素形成一个heap” |