简单谈谈C++ 头文件系列之(algorithm)

2020-01-06 16:51:26王旭

下面几个函数有关分区的同一方面,但又功能却不想上面所列那么相似,故而分开叙述:

is_partition : 用给定的一元谓词判断给定序列是否被正确分区(即前一部分元素调用谓词返回true,后一部分返回false)。 partition : 对给定序列进行分区操作。 stable_partition : 与partition操作相似,但是两个group(即分区成的两个分区)内元素的相关顺序保持不变(stable)。 partition_copy : 与partition相似,但是两个分区group结果被拷贝到两个指定的位置。 partition_point : 返回分区点,该点之前、该点之后(包括该点)分别为两个分区。

Sorting and related operations

这些函数都有两个版本:使用operator < 的、使用函数子Compare的。

sort : 排序。 stable_sort : 稳定排序。 partial_sort : 部分排序,对于给定的序列,只排序前middle - first个元素,并将它们放置在[first, middle)范围中,剩余位置的元素顺序为指定。 partial_sort_copy : paartial_sort函数的copy版本。 is_sorted、is_sorted_util : 判断给定序列是否为已排序(使用operator < 或 自定义函数子判断)的。 nth_element : 将nth迭代器指定的位置排序为结果元素。(实际上应该是使用快排实现的) lower_bound、upper_bound、equal_range : 返回下界、上界、相等性范围。 binary_search : 在给定序列中对元素进行二分查找。 merge、inplace_merge : 合并两个序列并输出。 includes : 判断是否一个序列重的所有元素都被包含在另一个序列中。 set_union : 并集。 set_intersection : 交集。 set_difference : 差集。 set_symmetric_difference : 对称差集。 push_heap : 将一个元素push进由序列表示的heap中,并维持堆得性质。 pop_heap : 将一个元素从heap中pop(实际上被交换到尾部)。 make_heap : 将给定序列构造成heap。 sort_heap : 对给定堆进行排序(可能有特殊的算法对堆排序进行优化)。 is_heap、is_heap_util : 判断给定序列是否为堆、判断给定序列到哪个位置之前为堆。 min、max : 返回最小值、最大值。 minmax : 返回pair min_element、max_element : 返回序列中第一个最小值、最大值。 minmax_element : 返回pair lexicographical_compare : 对两个序列进行字典序排序。 next_permutation、prev_permutation : 判断给定序列是否存在下一个或者上一个组合(所有可能的排列组合先由字典序排序,再进行判断)。

C library algorithms

该头文件还包含了标准C头文件stdlib.h,大体相同。 只是出于与C兼容的目的,bsearchqsort同时包含了C和C++的两个函数签名。


注:相关教程知识阅读请移步到C++教程频道。