Bootstrap

C++ 标准库 <algorithm> 文件常用算法分类及简介

C++ 标准库 <algorithm> 文件包含了大量用于处理数据的算法。这些算法可以分为以下几类:

  • 查找算法:用于查找序列中特定元素的位置。
  • 排序算法:用于对序列中的元素进行排序。
  • 修改算法:用于修改序列中的元素。
  • 聚合算法:用于对序列中的元素进行聚合操作。
  • 迭代算法:用于遍历序列中的元素。

以下是 <algorithm> 文件中包含的全部算法列表:

查找算法

  • find():查找序列中第一个与给定值相等的元素的位置。
  • find_if():查找序列中第一个满足给定条件的元素的位置。
  • adjacent_find():查找序列中相邻的相同元素。
  • count():计算序列中与给定值相等的元素的个数。
  • count_if():计算序列中满足给定条件的元素的个数。
  • search():查找序列中另一个序列的第一个出现的位置。
  • search_n():查找序列中给定值出现的第一个位置,并返回该位置和下一个位置之间的所有元素。
  • mismatch():比较两个序列,并返回第一个不相等的元素的位置。
  • equal():比较两个序列是否相等。
  • is_sorted():判断序列是否已经排序。
  • binary_search():在排序后的序列中查找给定值的位置。
  • lower_bound():返回第一个大于或等于给定值的元素的迭代器。
  • upper_bound():返回第一个大于给定值的元素的迭代器。
  • equal_range():返回包含给定值的两个迭代器,一个指向第一个相等的元素,另一个指向下一个相等的元素。

排序算法

  • sort():对序列进行排序。
  • stable_sort():对序列进行稳定排序。
  • partial_sort():对序列进行部分排序。
  • partial_sort_copy():对序列进行部分排序,并将结果复制到另一个序列。
  • nth_element():将序列的第 n 个元素放在正确的位置。
  • merge():将两个有序序列合并为一个有序序列。
  • inplace_merge():在原地将两个有序序列合并为一个有序序列。
  • sort_heap():对堆进行排序。
  • make_heap():将序列转换为堆。
  • pop_heap():从堆中弹出顶部元素。
  • push_heap():将元素插入到堆中。
  • sort_by_key():根据键对序列进行排序。
  • stable_sort_by_key():根据键对序列进行稳定排序。

修改算法

  • copy():复制一个序列。
  • copy_if():复制满足给定条件的序列元素。
  • replace():将序列中指定的元素替换为另一个元素。
  • replace_if():将序列中满足给定条件的元素替换为另一个元素。
  • fill():将序列填充为指定值。
  • fill_n():将序列的前 n 个元素填充为指定值。
  • transform():将序列中的每个元素转换为另一个值。
  • generate():将序列中的每个元素生成为一个指定函数的结果。
  • remove():从序列中删除指定值的元素。
  • remove_if():从序列中删除满足给定条件的元素。
  • unique():删除序列中相邻重复的元素。
  • unique_copy():将序列中相邻重复的元素复制到另一个序列。
  • swap():交换两个序列。
  • reverse():反转序列的顺序。
  • rotate():将序列旋转指定的元素。
  • random_shuffle():对序列进行随机排序。
  • shuffle()

聚合算法

  • accumulate():对序列中的元素进行累加。
  • reduce():对序列中的元素进行归约。
  • inner_product():计算两个序列的点积。
  • adjacent_difference():计算序列中相邻元素的差。
  • partial_sum():计算序列中的部分和。
  • iota():生成一个从 0 开始的序列。

迭代算法

  • for_each():对序列中的每个元素执行一个指定的操作。
  • transform_reduce():将序列中的元素转换为另一个值,并对结果进行归约。
  • for_each_n():对序列的前 n 个元素执行一个指定的操作。
  • generate_n():生成 n 个元素,并将它们插入到序列中。
;