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++语言编程思想