C++算法函数
库定义了许多特别适用于一次处理大量元素或一段范围的函数。现在让我们直接看看这些函数。
非修改序列操作:
函数 | 描述 |
---|
all_of | 将条件应用于范围中的所有元素。 |
any_of | 将条件应用于范围中的某些或任何元素。 |
none_of | 检查是否没有元素符合条件。 |
for_each | 将操作应用于范围中的所有元素。 |
find | 在范围中查找值。 |
find_if | 在范围中查找元素。 |
find_if_not | 以与上述函数相反的方式在范围中查找元素。 |
find_end | 返回范围中最后一个元素。 |
find_first_of | 查找满足条件并首次出现的元素。 |
adjacent_find | 在范围中搜索相等且相邻的元素。 |
count | 返回范围中值的计数。 |
count_if | 返回满足条件的值的计数。 |
mismatch | 返回序列中第一个不匹配的值。 |
equal | 检查两个范围的所有元素是否相等。 |
is_permutation | 检查参考范围是否是其他范围的排列。 |
search | 在范围中搜索子序列。 |
search_n | 在范围中搜索元素的出现次数。 |
修改序列操作
函数 | 描述 |
---|
copy | 复制元素的范围。 |
copy_n | 复制范围中的n个元素。 |
copy_if | 仅当满足特定条件时,复制范围的元素。 |
copy_backward | 以逆序复制元素。 |
move | 移动元素的范围。 |
move_backward | 以逆序移动元素的范围。 |
swap | 交换两个对象的值。 |
swap_ranges | 交换两个范围的值。 |
iter_swap | 交换两个迭代器引用的值。 |
transform | 转换范围中的所有值。 |
replace | 用特定值替换范围中的值。 |
replace_if | 仅当满足特定条件时,替换范围的值。 |
replace_copy | 通过替换元素复制范围的值。 |
replace_copy_if | 仅当满足特定条件时,通过替换元素复制范围的值。 |
fill | 用值填充范围中的元素。 |
fill_n | 填充序列中的值。 |
generate | 用于生成范围的值。 |
generate_n | 用于生成序列的值。 |
remove | 从范围中移除值。 |
remove_if | 仅当满足条件时,移除范围中的值。 |
remove_copy | 通过移除元素复制范围的值。 |
remove_copy_if | 仅当满足条件时,通过移除元素复制范围的值。 |
unique | 识别范围中的唯一元素。 |
unique_copy | 复制范围中的唯一元素。 |
reverse | 反转范围。 |
reverse_copy | 通过反转值复制范围。 |
rotate | 将范围的元素向左旋转。 |
rotate_copy | 通过左旋转复制范围的元素。 |
random_shuffle | 随机打乱范围。 |
shuffle | 借助生成器随机打乱范围。 |
分区
函数 | 描述 |
---|
is_partitioned | 用于确定范围是否已分区。 |
partition | 用于分区范围。 |
stable_partition | 将范围分为两个稳定的半段。 |
partition_copy | 分区后复制范围。 |
partition_point | 返回范围的分区点。 |
排序
函数 | 描述 |
---|
sort | 对范围中的所有元素进行排序。 |
stable_sort | 对范围中的元素进行排序,保持相对等价的顺序。 |
partial_sort | 部分排序范围中的元素。 |
partial_sort_copy | 排序后复制范围中的元素。 |
is_sorted | 检查范围是否已排序。 |
is_sorted_until | 检查范围排序到哪个位置。 |
nth_element | 对范围中的元素进行排序。 |
二分搜索
函数 | 描述 |
---|
lower_bound | 返回范围的下界元素。 |
upper_bound | 返回范围的上界元素。 |
equal_range | 返回等于给定元素的子范围。 |
binary_search | 检查范围中的值是否存在于已排序序列中。 |
合并
函数 | 描述 |
---|
merge | 合并已排序的两个范围。 |
inplace_merge | 合并已排序的两个连续范围。 |
includes | 搜索已排序的范围是否包含另一个范围。 |
set_union | 返回已排序的两个范围的并集。 |
set_intersection | 返回已排序的两个范围的交集。 |
set_difference | 返回已排序的两个范围的差集。 |
set_symmetric_difference | 返回已排序的两个范围的对称差集。 |
堆
函数 | 描述 |
---|
push_heap | 将新元素推入堆中。 |
pop_heap | 从堆中弹出元素。 |
make_heap | 创建堆。 |
sort_heap | 对堆进行排序。 |
is_heap | 检查范围是否为堆。 |
is_heap_until | 检查范围到哪个位置为堆。 |
最小/最大值
函数 | 描述 |
---|
min | 返回范围中的最小元素。 |
max | 返回范围中的最大元素。 |
minmax | 返回范围中的最小和最大元素。 |
min_element | 返回范围中的最小元素。 |
max_element | 返回范围中的最大元素。 |
minmax_element | 返回范围中的最小和最大元素。 |
其他函数
函数 | 描述 |
---|
lexicographical_comapre | 执行词典顺序的小于比较。 |
next_permutation | 将范围转换为下一个排列。 |
perv_permutation | 将范围转换为前一个排列。 |
标签: C++语言, C++语言教程, C++语言技术, C++语言学习, C++语言学习教程, C++语言下载, C++语言开发, C++语言入门教程, C++语言进阶教程, C++语言高级教程, C++语言面试题, C++语言笔试题, C++语言编程思想