下面这份清单整理了 C++ 竞赛高频函数,每个都给出所在头文件、一句话作用、原型、常用写法/注意点四个维度,赛前快速扫一遍即可回忆。
一、算法头文件
| # | 函数 | 一句话作用 | 原型 / 示例 |
|---|---|---|---|
| 1 | sort | 区间排序 | sort(a, a+n); 默认升序 |
| 2 | stable_sort | 稳定排序 | stable_sort(v.begin(), v.end()); |
| 3 | partial_sort | 部分排序 | partial_sort(a, a+k, a+n); 前 k 小 |
| 4 | nth_element | 选第 k 小 | nth_element(a, a+k, a+n); O(n) |
| 5 | binary_search | 二分存在性 | bool ok=binary_search(a, a+n, x); |
| 6 | lower_bound | ≥x 首个位置 | int p=lower_bound(a, a+n, x)-a; |
| 7 | upper_bound | >x 首个位置 | int p=upper_bound(a, a+n, x)-a; |
| 8 | max_element | 最大元素迭代器 | auto it=max_element(a, a+n); |
| 9 | min_element | 最小元素迭代器 | auto it=min_element(a, a+n); |
| 10 | minmax_element | 一次求最大最小 | auto [mn,mx]=minmax_element(a, a+n); |
| 11 | reverse | 区间反转 | reverse(s.begin(), s.end()); |
| 12 | rotate | 循环左移 | rotate(a, a+k, a+n); 把 k 提最前 |
| 13 | next_permutation | 下一个字典序 | while(next_permutation(a, a+n)); |
| 14 | prev_permutation | 上一个字典序 | 同上,反方向 |
| 15 | unique | 去重(先排序) | int m=unique(a, a+n)-a; |
| 16 | merge | 归并两个有序区间 |

