C++ algorithm 头
-
定义
algorithm 头文件定义了一组专门设计用于元素范围的函数集合。范围是可以通过迭代器或指针访问的任何对象序列,例如一些STL容器的数组或实例。 但是请注意,算法通过迭代器直接对值进行操作,而不以任何方式影响任何可能容器的结构(它从不影响容器的大小或存储分配)。 -
函数
非修改序列操作:函数 说明 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 复制元素 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: min 返回最小 max 返回最大 minmax 返回最小和最大元素 min_element 返回范围内的最小元素 max_element 返回范围内的最大元素 minmax_element 返回范围中的最小和最大元素 其他: lexicographical_compare 词法小于 next_permutation 将范围转换为下一个排列 prev_permutation 将范围转换为先前的排列