标准库头文件 <algorithm>
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    此头文件是算法库的一部分。
函数
 不修改序列的操作 | |
|    (C++11)(C++11)(C++11)  | 
   检查谓词是否对范围中所有、任一或无元素为 true   (函数模板)  | 
|    应用函数到范围中的元素   (函数模板)  | |
|    (C++17)  | 
   应用一个函数对象到序列的前 n 个元素  (函数模板)  | 
|   返回满足指定判别标准的元素数  (函数模板)  | |
|    寻找两个范围出现不同的首个位置   (函数模板)  | |
|    (C++11)  | 
   寻找首个满足特定判别标准的元素   (函数模板)  | 
|    在特定范围中寻找最后出现的元素序列  (函数模板)  | |
|    搜索元素集合中的任意元素   (函数模板)  | |
|    查找首对相邻的相同(或满足给定谓词的)元素   (函数模板)  | |
|    搜索一个元素范围   (函数模板)  | |
|    在范围中搜索一定量的某个元素的连续副本   (函数模板)  | |
 修改序列的操作 | |
|    (C++11)  | 
   将某一范围的元素复制到一个新的位置  (函数模板)  | 
|    (C++11)  | 
   将一定数目的元素复制到一个新的位置  (函数模板)  | 
|    按从后往前的顺序复制一个范围内的元素  (函数模板)  | |
|    (C++11)  | 
   将某一范围的元素移动到一个新的位置  (函数模板)  | 
|    (C++11)  | 
   按从后往前的顺序移动某一范围的元素到新的位置   (函数模板)  | 
|    将一个给定值复制赋值给一个范围内的每个元素   (函数模板)  | |
|    将一个给定值复制赋值给一个范围内的 N 个元素  (函数模板)  | |
|    将一个函数应用于某一范围的各个元素,并在目标范围存储结果   (函数模板)  | |
|   将相继的函数调用结果赋值给一个范围中的每个元素  (函数模板)  | |
|   将相继的函数调用结果赋值给一个范围中的 N 个元素  (函数模板)  | |
|   移除满足特定判别标准的元素   (函数模板)  | |
|    复制一个范围的元素,忽略满足特定判别标准的元素  (函数模板)  | |
|    将所有满足特定判别标准的值替换为另一个值   (函数模板)  | |
|    复制一个范围内的元素,并将满足特定判别标准的元素替换为另一个值   (函数模板)  | |
|    交换两个对象的值   (函数模板)  | |
|    交换两个范围的元素   (函数模板)  | |
|    交换两个迭代器所指向的元素   (函数模板)  | |
|    逆转范围中的元素顺序   (函数模板)  | |
|    创建一个范围的逆向副本   (函数模板)  | |
|    旋转范围中的元素顺序   (函数模板)  | |
|    复制并旋转元素范围  (函数模板)  | |
|    (C++20)  | 
  迁移范围中的元素  (函数模板)  | 
|    (C++17 前)(C++11)  | 
   随机重排范围中的元素   (函数模板)  | 
|    (C++17)  | 
   从一个序列中随机选择 n 个元素  (函数模板)  | 
|    移除范围内的连续重复元素   (函数模板)  | |
|    创建某范围的不含连续重复元素的副本   (函数模板)  | |
 划分操作 | |
|    (C++11)  | 
   判断范围是否已按给定的谓词划分   (函数模板)  | 
|     将范围中的元素分为两组   (函数模板)  | |
|    (C++11)  | 
   复制一个范围,将各元素分为两组   (函数模板)  | 
|    将元素分为两组,同时保留其相对顺序   (函数模板)  | |
|    (C++11)  | 
   定位已划分范围的划分点   (函数模板)  | 
 排序操作 | |
|    (C++11)  | 
   检查范围是否已按升序排列   (函数模板)  | 
|    (C++11)  | 
  找出最大的已排序子范围  (函数模板)  | 
|    将范围按升序排序   (函数模板)  | |
|    排序一个范围的前 N 个元素   (函数模板)  | |
|    对范围内的元素进行复制并部分排序   (函数模板)  | |
|    将范围内的元素排序,同时保持相等的元素之间的顺序   (函数模板)  | |
|    将给定的范围部分排序,确保其按给定元素划分   (函数模板)  | |
 (已排序范围上的)二分搜索操作 | |
|    返回指向第一个不小于给定值的元素的迭代器   (函数模板)  | |
|    返回指向第一个大于给定值的元素的迭代器   (函数模板)  | |
|    确定元素是否存在于某范围中   (函数模板)  | |
|    返回匹配特定键值的元素范围   (函数模板)  | |
 其他已排序范围上的操作 | |
|    归并两个已排序的范围   (函数模板)  | |
|    就地归并两个有序范围   (函数模板)  | |
 (已排序范围上的)集合操作 | |
|    若一个序列是另一个的子列则返回 true   (函数模板)  | |
|    计算两个集合的差集   (函数模板)  | |
|    计算两个集合的交集   (函数模板)  | |
|    计算两个集合的对称差  (函数模板)  | |
|    计算两个集合的并集   (函数模板)  | |
 堆操作 | |
|    检查给定范围是否为一个最大堆   (函数模板)  | |
|    (C++11)  | 
   查找能成为最大堆的最大子范围   (函数模板)  | 
|    从一个元素范围创建出一个最大堆   (函数模板)  | |
|    将一个元素加入到一个最大堆   (函数模板)  | |
|    从最大堆中移除最大元素   (函数模板)  | |
|    将一个最大堆变成一个按升序排序的元素范围   (函数模板)  | |
 最小/最大操作 | |
|    返回各给定值中的较大者   (函数模板)  | |
|    返回范围内的最大元素   (函数模板)  | |
|    返回各给定值中的较小者  (函数模板)  | |
|    返回范围内的最小元素   (函数模板)  | |
|    (C++11)  | 
    返回两个元素的较小和较大者   (函数模板)  | 
|    (C++11)  | 
   返回范围内的最小元素和最大元素   (函数模板)  | 
|    (C++17)  | 
   在一对边界值间夹逼一个值   (函数模板)  | 
 比较操作 | |
|    确定两个元素集合是否是相同的   (函数模板)  | |
|    当一个范围按字典顺序小于另一个范围时,返回 true   (函数模板)  | |
|   用三路比较比较两个范围  (函数模板)  | |
 排列操作 | |
|    (C++11)  | 
   判断一个序列是否为另一个序列的排列   (函数模板)  | 
|    产生某个元素范围的按字典顺序的下一个较大的排列   (函数模板)  | |
|    产生某个元素范围的按字典顺序的下一个较小的排列   (函数模板)  | |