C++ 算法
来自cppreference.com
< cpp
下列函数在<algorithm> 或者 <numeric>中定义,属于stl命名空间(namespace)。
accumulate | 将一段范围的元素累加 |
adjacent_difference | 计算一个范围相邻元素的差 |
adjacent_find | 查找相同的两个相邻元素或者具有某种关系的两个相邻元素 |
binary_search | 判断在某个范围是否存在某个元素 |
copy | 把一段范围元素拷贝到另一个位置 |
copy_backward | 把一段范围元素反向拷贝到另一个位置 |
count | 返回匹配某个值的元素个数 |
count_if | 返回满足某个条件的元素个数 |
equal | 判断两个集合是否相等 |
equal_range | 查找与某个值相等的一段元素 |
fill | 将一个值赋给某一范围元素 |
fill_n | 把某个值赋给某个范围一定数目的元素 |
find | 在一个给定范围查找某个值 |
find_end | 在某个范围查找某个元素序列 |
find_first_of | 查找一组元素中的任意一个 |
find_if | 查找断言为真的第一个元素 |
for_each | 将一个函数应用于某个范围的元素 |
generate | 把一个仿函数的结果保存到一个区间里 |
generate_n | 保存仿函数 N 次执行结果 |
includes | 返回真,如果后者是前者的子集 |
inner_product | compute the inner product of two ranges of elements |
inplace_merge | merge two ordered ranges in-place |
is_heap | 判断一个范围的元素是否构成堆 |
iter_swap | 交换两个迭代器指向的元素 |
lexicographical_compare | returns true if one range is lexicographically less than another |
lower_bound | search for the first place that a value can be inserted while preserving order |
make_heap | 将某个范围元素构造为堆 |
max | 返回两个元素中较大的元素 |
max_element | 返回某个范围中最大的元素 |
merge | 将两段有序元素序列合并成有序序列 |
min | 返回两个元素中的较小者 |
min_element | 返回区间内最小的元素 |
mismatch | 找出两个区间里第一个不同的元素 |
next_permutation | generates the next greater lexicographic permutation of a range of elements |
nth_element | put one element in its sorted location and make sure that no elements to its left are greater than any elements to its right |
partial_sort | 将某个范围的前N个元素排序 |
partial_sort_copy | copy and partially sort a range of elements |
partial_sum | compute the partial sum of a range of elements |
partition | 将某段范围元素分为两组 |
pop_heap | 将堆的最大元素删除 |
prev_permutation | generates the next smaller lexicographic permutation of a range of elements |
push_heap | 在堆中添加一个元素 |
random_shuffle | randomly re-order elements in some range |
remove | 删除所有与指定值相同的元素 |
remove_copy | copy a range of elements omitting those that match a certain value |
remove_copy_if | create a copy of a range of elements, omitting any for which a predicate is true |
remove_if | 删除所有断言为真的元素 |
replace | replace every occurrence of some value in a range with another value |
replace_copy | copy a range, replacing certain elements with new ones |
replace_copy_if | copy a range of elements, replacing those for which a predicate is true |
replace_if | change the values of elements for which a predicate is true |
reverse | 把区间内元素反序 |
reverse_copy | create a copy of a range that is reversed |
rotate | move the elements in some range to the left by some amount |
rotate_copy | copy and rotate a range of elements |
search | search for a range of elements |
search_n | search for N consecutive copies of an element in some range |
set_difference | computes the difference between two sets |
set_intersection | computes the intersection of two sets |
set_symmetric_difference | computes the symmetric difference between two sets |
set_union | computes the union of two sets |
sort | 将某段元素按照递增序排序 |
sort_heap | 将一个堆排序 |
stable_partition | divide elements into two groups while preserving their relative order |
stable_sort | 稳定的排序 |
swap | swap the values of two objects |
swap_ranges | swaps two ranges of elements |
transform | applies a function to a range of elements |
unique | 删除连续重复出现的元素 |
unique_copy | creates a copy of some range of elements that contains no consecutive duplicates |
upper_bound | searches for the last place that a value can be inserted while preserving order (first place that is greater than the value) |