Algorithm-Library

在 C++ 算法竞赛中,标准库中的 algorithm 头文件中的函数是非常常用的。以下是一些常见的 algorithm 库函数,它们在解决各种算法竞赛问题时非常有用:

  1. 排序算法:

    • sort(): 对容器进行排序。
    • stable_sort(): 稳定排序。
    • partial_sort(): 部分排序。
    • nth_element(): 找到容器中第 n 个元素,其他元素不一定有序。
  2. 搜索算法:

    • find(): 在容器中查找某个值第一次出现的位置。 无序时使用
    • count(): 统计某个值在容器中出现的次数。
    • binary_search(): 二分查找。
    • lower_bound(): 返回大于或等于给定值的第一个元素的位置。
    • upper_bound(): 返回大于给定值的第一个元素的位置。
  3. 合并和删除算法:

    • merge(): 合并两个已排序的容器。
    • unique(): 删除容器中连续重复的元素。
    • remove(): 删除容器中指定值的元素。
  4. 其他常见算法:

    • min(), max(): 返回两个值中的最小值和最大值。
    • accumulate(): 对容器中的值进行累积操作。
    • next_permutation(): 获取容器的下一个排列。
    • prev_permutation(): 获取容器的上一个排列。

搜索算法

//在 [first, last) 区域内查找不小于 val 的元素
ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last,
const T& val);

//在 [first, last) 区域内查找第一个不符合 comp 规则的元素
ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last,
const T& val, Compare comp);