C++标准模板库算法完整参考指南,包含详细说明、代码示例和时间复杂度分析
对范围 [first, last) 中的元素进行排序,默认按升序排序。
在范围 [first, last) 中查找等于 value 的元素。
将一元操作应用于输入范围,并将结果存储在目标范围中。
计算范围内元素的累加和,或使用二元操作进行累积计算。
将范围 [first, last) 中的元素复制到从 d_first 开始的另一范围。
从范围 [first, last) 中移除所有等于 value 的元素,但不改变容器大小。
反转范围 [first, last) 中元素的顺序。
删除范围 [first, last) 中连续的重复元素。
返回范围 [first, last) 中等于 value 的元素数。
返回范围 [first, last) 中最大元素的迭代器。
检查范围 [first, last) 中是否存在等价于 value 的元素。
将给定值复制赋值给范围 [first, last) 中的每个元素。
将范围 [first, last) 中所有等于 old_value 的元素替换为 new_value。
将范围 [first, last) 中的元素旋转,使得 middle 成为新的第一个元素。
将满足谓词的元素置于不满足谓词的元素之前。
对范围部分排序,确保第n个元素是排序后该位置应有的元素。
检查范围 [first, last) 中所有元素是否都满足谓词。
计算两个范围的内积(点积)或执行自定义操作。
构造两个排序范围的交集。
返回范围中最小和最大元素的迭代器。
在范围中搜索第一对相邻的重复元素。
将函数生成的值赋给范围中的每个元素。
检查范围是否按升序排序。
计算范围的前缀和。
复制范围中满足特定条件的元素到目标范围。
合并两个已排序范围到一个新的排序范围中。
在范围中查找满足特定条件的第一个元素。
对范围中的每个元素应用指定的函数。
用连续递增的值填充范围。
返回两个范围中第一个不匹配的元素对。
构造两个排序范围的差集(在第一个范围但不在第二个范围中)。
使用随机数生成器对范围中的元素进行随机重排。
对范围进行排序,同时保持相等元素的相对顺序。
检查一个排序范围是否包含另一个排序范围的所有元素。
从范围中移除满足特定条件的元素。
从范围中复制元素,忽略连续的重复项。
检查第一个范围是否在字典序上小于第二个范围。
在排序范围中查找等于给定值的子范围。
合并两个已排序的子范围为一个排序范围。
检查范围是否形成堆结构。
将范围转化为堆结构。
将范围末尾的元素插入堆中。
将堆的最大元素移动到范围末尾。
将堆转换为排序范围。
将值限制在给定的范围内。
从范围中随机选择n个元素。
类似accumulate,但可并行执行。
计算前缀和,每个结果不包含当前元素。
先应用变换,然后累加结果。
计算两个排序范围的对称差集(在任一范围但不在两个范围中)。
检查一个范围是否是另一个范围的排列。
将范围变换为下一个字典序排列。
将范围变换为上一个字典序排列。
在划分范围中查找划分点。
旋转范围并将结果复制到目标范围。
将范围中的元素向左移动。
将范围中的元素向右移动。
计算两个整数的最大公约数。
计算两个整数的最小公倍数。
计算范围中相邻元素的差。
在范围中搜索子序列的出现。
在范围中搜索n个连续等于值的元素。
在范围中搜索另一个范围中的任意元素的首次出现。
从范围的末尾开始复制元素。
将元素从一个范围移动到另一个范围。
从范围的末尾开始移动元素。
将值赋给范围的前n个元素。
将函数生成的值赋给范围的前n个元素。
复制范围中的元素,但跳过等于特定值的元素。
复制范围中的元素,同时替换特定值。
交换两个范围中的元素。
检查范围是否被划分为满足谓词的元素在前。
划分范围,同时保持相等元素的相对顺序。
对范围部分排序并将结果复制到目标范围。
查找范围中第一个破坏排序的元素。
将范围划分为两个范围,同时复制元素。
计算两个数字的中点,避免溢出。
计算两个值之间的线性插值。
C++20范围库中的排序算法。
C++20范围库中的惰性变换操作。
C++20范围库中的惰性过滤操作。
计算范围中相邻元素的差。
在范围中搜索子序列的出现。
在范围中搜索n个连续等于值的元素。
在范围中搜索另一个范围中的任意元素的首次出现。
从范围的末尾开始复制元素。
将元素从一个范围移动到另一个范围。
从范围的末尾开始移动元素。
将值赋给范围的前n个元素。
将函数生成的值赋给范围的前n个元素。
复制范围中的元素,但跳过等于特定值的元素。
复制范围中的元素,同时替换特定值。
交换两个范围中的元素。
检查范围是否被划分为满足谓词的元素在前。
划分范围,同时保持相等元素的相对顺序。
对范围部分排序并将结果复制到目标范围。
查找范围中第一个破坏排序的元素。
将范围划分为两个范围,同时复制元素。
计算两个数字的中点,避免溢出。
计算两个值之间的线性插值。
C++20范围库中的排序算法。
C++20范围库中的惰性变换操作。
C++20范围库中的惰性过滤操作。
计算前缀和,每个结果不包含当前元素。
计算前缀和,每个结果包含当前元素。
先变换元素,然后计算排除式扫描。
先变换元素,然后计算包含式扫描。
从范围中随机选择n个元素。
类似accumulate,但可并行执行。
先应用变换,然后累加结果。
将范围中的元素向左移动。
将范围中的元素向右移动。
查找范围中第一个破坏排序的元素。
查找范围中第一个破坏堆结构的元素。
对范围进行排序,同时保持相等元素的相对顺序。
合并两个已排序的子范围为一个排序范围。
在划分范围中查找划分点。
旋转范围并将结果复制到目标范围。
从范围中复制元素,忽略连续的重复项。
复制范围中的元素,但跳过等于特定值的元素。
复制范围中的元素,同时替换特定值。
将范围划分为两个范围,同时复制元素。
C++20范围库中的查找算法。
C++20范围库中的条件检查算法。
C++20范围库中的条件计数算法。
C++20范围库中的惰性整数序列生成器。
C++23新增算法,检查范围是否包含特定值。
C++23新增算法,检查范围是否以特定序列开头。
C++23新增算法,检查范围是否以特定序列结尾。
C++23新增算法,对范围元素执行左折叠操作。
C++23新增算法,使用首元素作为初始值执行左折叠。
C++23新增算法,对范围元素执行右折叠操作。
C++23新增视图,根据谓词将元素分组。
C++23新增视图,创建滑动窗口。
C++23新增视图,使用分隔符连接范围。
C++23新增视图,对多个范围进行压缩和变换。
C++23新增视图,创建相邻元素组。
C++23新增视图,创建多个范围的笛卡尔积。
C++23新增算法,查找范围中最后一次出现的位置。
C++23新增算法,查找范围中最后一次满足条件的元素。
C++23新增算法,检查范围是否包含特定子范围。
C++23新增算法,对范围执行左移操作。
C++23新增算法,对范围执行右移操作。
C++23新增算法,对范围执行右移操作。
C++23新增算法,用连续递增的值填充范围。
C++23新增视图,将范围划分为固定大小的块。
C++23新增视图,以指定步长遍历范围。
C++23新增视图,生成无限重复的值序列。
C++23新增视图,通过生成函数创建无限序列。
C++23新增视图,为范围元素添加索引。
C++23新增视图,将范围元素视为常量。
C++26提案算法,查找范围中的最小值。
C++26提案算法,查找范围中的最大值。
C++26提案算法,同时查找范围中的最小值和最大值。
C++26提案算法,检查范围是否包含满足条件的元素。
C++26提案算法,检查范围是否包含特定子范围。
C++26提案算法,检查范围是否是回文序列。
C++26提案算法,旋转范围并将结果复制到目标范围。
C++26提案算法,根据偏移量左移或右移范围。
C++26提案视图,创建相邻元素对。
C++26提案视图,根据谓词创建滑动窗口。
C++26提案视图,对多个范围进行压缩和变换。
C++23范围适配器,将范围转换为容器。