算法库
来自cppreference.com
< cpp
算法库定义了用来实现各种功能的函数(如查找、排序、计数、修改等),都是针对指定范围内元素的操作。需要注意的是,元素的范围以 [first, last)
的形式指定,其中 last
指的是范围内最后一个元素的下一个元素。
不修改序列内容的操作 | ||
在头文件
<algorithm> 中定义 | ||
(C++11) (C++11) (C++11) |
检查一定范围之内,是否全部、任何或没有元素使得谓词为true (函数模板) | |
将一个函数应用于某一范围的元素 (函数模板) | ||
返回满足特定条件的元素的数量 原文: returns the number of elements satisfying specific criteria (函数模板) | ||
查找两个范围第一个不同元素的位置 (函数模板) | ||
确定两个元素集合是否是相同的 (函数模板) | ||
(C++11) |
查找满足特定条件的第一个元素 (函数模板) | |
查找一定范围内最后出现的元素序列 (函数模板) | ||
查找元素集合中的任意元素 (函数模板) | ||
查找彼此相邻的两个相同(或其它的关系)的元素 (函数模板) | ||
查找一个元素区间 (函数模板) | ||
在区间中搜索连续一定数目次出现的元素 (函数模板) | ||
会修改序列内容的操作 | ||
在头文件
<algorithm> 中定义 | ||
(C++11) |
将某一范围的元素复制到一个新的位置 (函数模板) | |
(C++11) |
复制一定数目的元素到新的位置 (函数模板) | |
按从后往前的顺序复制一个范围内的元素 (函数模板) | ||
(C++11) |
将某一范围的元素移动到一个新的位置 (函数模板) | |
(C++11) |
按从后往前的顺序移动某一范围的元素到新的位置 (函数模板) | |
将一个值赋给一个范围内的元素 (函数模板) | ||
将一个值赋给一定数目的元素 (函数模板) | ||
将一个函数应用于某一范围的元素 (函数模板) | ||
将函数的结果保存于一个范围内 (函数模板) | ||
保存函数的N次运行结果 (函数模板) | ||
删除满足特定条件的元素 (函数模板) | ||
复制一个范围内不满足特定条件的元素 (函数模板) | ||
将所有满足特定条件的元素替换为另一个值 (函数模板) | ||
复制一个范围内的元素,并将满足特定条件的元素替换为另一个值 (函数模板) | ||
交换两个对象的值 (函数模板) | ||
交换两个范围的元素 (函数模板) | ||
交换两个迭代器所指向的元素 (函数模板) | ||
将区间内的元素颠倒顺序 (函数模板) | ||
将区间内的元素颠倒顺序并复制 (函数模板) | ||
将区间内的元素旋转 (函数模板) | ||
将区间内的元素旋转并复制 (函数模板) | ||
将范围内的元素随机重新排序 (函数模板) | ||
删除区间内连续重复的元素 (函数模板) | ||
删除区间内连续重复的元素并复制 (函数模板) | ||
分块操作 | ||
(C++11) |
判断区间是否被给定的谓词划分 (函数模板) | |
把一个区间的元素分为两组 (函数模板) | ||
(C++11) |
将区间内的元素分为两组复制到不同位置 (函数模板) | |
将元素分为两组,同时保留其相对顺序 (函数模板) | ||
(C++11) |
定位已划分的区域的划分点 (函数模板) | |
排序操作(针对已排序的范围) | ||
在头文件
<algorithm> 中定义 | ||
(C++11) |
检查区间是否按升序排列 (函数模板) | |
(C++11) |
查找最大有序子区间 (函数模板) | |
将区间按升序排序 (函数模板) | ||
将区间内较小的N个元素排序 (函数模板) | ||
对区间内的元素进行复制并部分排序 (函数模板) | ||
将区间内的元素排序,同时保持相等的元素之间的顺序 (函数模板) | ||
将给定的区间部分排序,确保区间被给定的元素划分 (函数模板) | ||
二叉排序操作(针对已排序的范围) | ||
在头文件
<algorithm> 中定义 | ||
返回指向第一个不小于给定值的元素的迭代器 (函数模板) | ||
返回指向第一个大于给定值的元素的迭代器 (函数模板) | ||
判断一个元素是否在区间内 (函数模板) | ||
返回匹配特定键值的元素区间 (函数模板) | ||
集合操作(针对已排序的范围) | ||
在头文件
<algorithm> 中定义 | ||
合并两个已排序的区间 (函数模板) | ||
就地合并两个有序的区间 (函数模板) | ||
如果一个集合是另外一个集合的子集则返回true (函数模板) | ||
计算两个集合的差集 (函数模板) | ||
计算两个集合的交集 (函数模板) | ||
计算两个集合的对称差 (函数模板) | ||
计算两个集合的并集 (函数模板) | ||
堆操作 | ||
在头文件
<algorithm> 中定义 | ||
检查给定的区间是否为一个堆 (函数模板) | ||
(C++11) |
查找区间中为堆的最大子区间 (函数模板) | |
根据区间内的元素创建出一个堆 (函数模板) | ||
将元素加入到堆 (函数模板) | ||
将堆中的最大元素删除 (函数模板) | ||
将堆变成一个排好序的区间 (函数模板) | ||
最小/最大操作 | ||
在头文件
<algorithm> 中定义 | ||
返回两个元素中的较大者 (函数模板) | ||
返回区间内的最大元素 (函数模板) | ||
返回两个元素中的较小者 (函数模板) | ||
返回区间内的最小元素 (函数模板) | ||
(C++11) |
返回两个元素中的的较大者和较小者 (函数模板) | |
(C++11) |
返回区间内的最小元素和最大元素 (函数模板) | |
如果一个区间按字典顺序小于另一个区间,返回true (函数模板) | ||
(C++11) |
判断一个序列是否为另一个序列的排列组合 (函数模板) | |
按字典顺序产生区间内元素下一个较大的排列组合 (函数模板) | ||
按字典顺序产生区间内元素下一个较小的排列组合 (函数模板) | ||
数字操作 | ||
在头文件
<numeric> 中定义 | ||
(C++11) |
用从起始值开始连续递增的值填充区间 (函数模板) | |
计算区间内元素的和 (函数模板) | ||
计算两个区间元素的内积 (函数模板) | ||
计算区间内相邻元素之间的差 (函数模板) | ||
计算区间内元素的部分和 (函数模板) | ||
C 库 | ||
在头文件
<cstdlib> 中定义 | ||
排序范围内的未指定类型的元素 原文: sorts a range of elements with unspecified type (函数) | ||
搜索一个数组元素的类型不明确 原文: searches an array for an element of unspecified type (函数) |