表格中将所有的 STL 算法的名称、用途、文件分布等等,依算法名称的字母顺序列表。
表格中凡是不在 STL 标准规格之列的 SGI 专属算法,都以 * 加以表示。
算法名称 | 算法用途 | 质变 | 所在文件 |
---|---|---|---|
accumulate | 元素累计 | 否 | <stl_numeric.h> |
adjacent_difference | 相邻元素的差额 | 是 if in-place | <stl_numeric.h> |
adjacent_find | 查找相邻而重复的元素(或者符合某条件) | 否 | <stl_algo.h> |
binary_search | 二分查找 | 否 | <stl_algo.h> |
copy | 复制 | 是 if in-place | <stl_algobase.h> |
copy_backward | 逆向复制 | 是 if in-place | <stl_algobase.h> |
copy_n * | 复制 n 个元素 | 是 if in-place | <stl_algobase.h> |
count | 计数 | 否 | <stl_algo.h> |
count_if | 在特定条件下计数 | 否 | <stl_algo.h> |
equal | 判断两个区间是否相等 | 否 | <stl_algobase.h> |
equal_range | 在有序区间查找某值 | 否 | <stl_algo.h> |
fill | 改填元素值 | 是 | <stl_algobase.h> |
fill_n | 改填元素值 n 次 | 是 | <stl_algobase.h> |
find | 循环查找 | 否 | <stl_algo.h> |
find_if | 循环查找符合特定条件者 | 否 | <stl_algo.h> |
find_end | 查找子序列最后一次出现位置 | 否 | <stl_algo.h> |
find_first_of | 查找子序列元素首次出现位置 | 否 | <stl_algo.h> |
foreach | 对区间每个元素施行某操作 | 否 | <stl_algo.h> |
generate | 以特定操作结果填充区间元素 | 是 | <stl_algo.h> |
generate_n | 以特定操作结果填充区间 n 个元素 | 是 | <stl_algo.h> |
includes | 是否涵盖于某序列之中 | 否 | <stl_algo.h> |
inner_product | 内积 | 否 | <stl_numeric.h> |
inplace_merge | 合并并就地替换 | 是 | <stl_algo.h> |
iota * | 在区间填入指定的递增序列 | 是 | <stl_numeric.h> |
is_heap * | 判断区间是否为一个 heap | 否 | <stl_algo.h> |
is_sorted * | 判断区间是否已排序 | 否 | <stl_algo.h> |
iter_swap | 元素互换 | 是 | <stl_algobase.h> |
lexicographical_compare | 以字典顺序进行比较 | 否 | <stl_numeric.h> |
lower_bound | 插入指定元素而不影响排序的最低位置 | 否 | <stl_algo.h> |
max | 最大值 | 否 | <stl_algobase.h> |
max_element | 最大值所在位置 | 否 | <stl_algo.h> |
merge | 合并两个序列 | 是 if in-place | <stl_algo.h> |
min | 最小值 | 否 | <stl_algobase.h> |
min_element | 最小值所在位置 | 否 | <stl_algo.h> |
mismatch | 找出不匹配点 | 否 | <stl_algobase.h> |
next_premutation | 获得下一个排列组合 | 是 | <stl_algo.h> |
nth_element | 重新排列序列第 n 个元素的左右两端 | 是 | <stl_algo.h> |
partial_sort | 局部排序 | 是 | <stl_algo.h> |
partial_sort_copy | 局部排序并复制到他处 | 是 if in-place | <stl_algo.h> |
partial_sum | 局部求和 | 是 if in-place | <stl_numeric.h> |
partition | 分割 | 是 | <stl_algo.h> |
prev_permutation | 获得前一个排列组合 | 是 | <stl_algo.h> |
power * | 幂次方,表达式可指定 | 否 | <stl_numeric.h> |
random_shuffle | 随机重排元素 | 是 | <stl_algo.h> |
random_sample * | 随机取样 | 是 if in-place | <stl_algo.h> |
random_sample_n * | 随机取样 | 是 if in-place | <stl_algo.h> |
remove | 删除某类元素 | 是 | <stl_algo.h> |
remove_copy | 删除某类元素并将结果复制到别处 | 是 | <stl_algo.h> |
remove_if | 有条件地删除某类元素 | 是 | <stl_algo.h> |
remove_copy_if | 有条件地删除某类元素并将结果复制到别处 | 是 | <stl_algo.h> |
replace | 替换某类元素 | 是 | <stl_algo.h> |
replace_copy | 替换某类元素并将结果复制到别处 | 是 | <stl_algo.h> |
replace_if | 有条件地替换 | 是 | <stl_algo.h> |
replace_copy_if | 有条件地替换并将结果复制到别处 | 是 | <stl_algo.h> |
reverse | 反转元素次序 | 是 | <stl_algo.h> |
reverse_copy | 反转元素次序并将结果复制到别处 | 是 | <stl_algo.h> |
rotate | 旋转 | 是 | <stl_algo.h> |
rotate_copy | 旋转并将结果复制到别处 | 是 | <stl_algo.h> |
search | 查找某个子序列 | 否 | <stl_algo.h> |
search_n | 查找连续发生 n 次的子序列 | 否 | <stl_algo.h> |
set_difference | 差集 | 是 if in-place | <stl_algo.h> |
set_intersection | 交集 | 是 if in-place | <stl_algo.h> |
set_symmetric_difference | 对称差集 | 是 if in-place | <stl_algo.h> |
set_union | 并集 | 是 if in-place | <stl_algo.h> |
sort | 排序 | 是 | <stl_algo.h> |
stable_partition | 分割并保持元素相对次序 | 是 | <stl_algo.h> |
stable_sort | 排序并保持等值元素相对次序 | 是 | <stl_algo.h> |
swap | 交换元素 | 是 | <stl_algobase.h> |
swap_ranges | 交换指定区间 | 是 | <stl_algo.h> |
transform | 以两个序列为基础交互产生第三个序列 | 是 | <stl_algo.h> |
unique | 将重复元素折叠使之唯一 | 是 | <stl_algo.h> |
unique_copy | 将重复元素折叠使之唯一并复制到别处 | 是 if in-place | <stl_algo.h> |
upper_bound | 插入指定元素而不影响排序的最高位置 | 否 | <stl_algo.h> |
make_heap | 制造一个 heap | 是 | <stl_heap.h> |
pop_heap | 从 heap 取出一个元素 | 是 | <stl_heap.h> |
push_heap | 将一个元素推进 heap 内 | 是 | <stl_heap.h> |
sort_heap | 对 heap 排序 | 是 | <stl_heap.h> |