非修改性序列操作:
| Test condition on all elements in range |
| |
Test if any element in range fulfills condition |
| ||
Test if no elements fulfill condition |
| ||
循环 | Apply function to range | 对序列中每个元素执行某项操作 | |
查找 | Find value in range | 在序列中找出某个值第一次出现的位置 | |
Find element in range | 在序列中找出符合某谓词的第一个元素 | ||
Find element in range (negative condition) |
| ||
Find last subsequence in range | 在序列中找出子子序列的最后一次出现的位置 | ||
Find element from set in range | 在序列中找出第一次出现指定值集中之值的位置 | ||
Find equal adjacent elements in range | 在序列中找出相邻的一对值 | ||
计数 | Count appearances of value in range | 在序列中统计某个值出现的次数 | |
Return number of elements in range satisfying condition | 在序列中统计与某谓词匹配的次数 | ||
比较 | Return first position where two ranges differ | 找出两个序列相异的第一个元素 | |
Test whether the elements in two ranges are equal | 两个序列中对应元素都相同时为真 | ||
Test whether range is permutation of another |
| ||
搜索 | Search range for subsequence | 在序列中找出一个子序列的第一次出现的位置 | |
Search range for elements | 在序列中找出一值连续N次出现的位置 |
修改性序列操作:
复制 | Copy range of elements | 从序列的第一个元素起进行复制 | |
Copy elements |
| ||
Copy certain elements of range |
| ||
Copy range of elements backward | 从序列的最后一个元素进行复制 | ||
| Move range of elements |
| |
Move range of elements backward |
| ||
交换 | Exchange values of two objects | 交换两个元素 | |
Exchange values of two ranges | 交换指定范围的元素 | ||
Exchange values of objects pointed by two iterators | 交换由迭代器所指的两个元素 | ||
变换 | Transform range | 将某操作应用于指定范围的每个元素 | |
替换 | Replace value in range | 用一个给定值替换一些值 | |
Replace values in range | 替换满足谓词的一些元素 | ||
Copy range replacing value | 复制序列时用一给定值替换元素 | ||
Copy range replacing value | 复制序列时替换满足谓词的元素 | ||
填充 | Fill range with value | 用一给定值取待所有元素 | |
Fill sequence with value | 用一给给定值取待前N个元素 | ||
生成 | Generate values for range with function | 用一操作的结果取待所有元素 | |
Generate values for sequence with function | 用一操作的结果取待前N个元素 | ||
删除 | Remove value from range | 删除具有给定值的元素 | |
Remove elements from range | 删除满足谓词的元素 | ||
Copy range removing value | 复制序列时删除具有给定值的元素 | ||
Copy range removing values | 复制序列时删除满足谓词的元素 | ||
唯一 | Remove consecutive duplicates in range | 删除相邻的重复元素 | |
Copy range removing duplicates | 复制序列时删除相邻的重复元素 | ||
反转 | Reverse range | 反转元素的次序 | |
Copy range reversed | 复制序列时反转元素的次序 | ||
环移 | Rotate left the elements in range | 循环移动元素 | |
Copy range rotated left | 复制序列是循环移动元素 | ||
随机 | Randomly rearrange elements in range | 采用均匀分布来随机移动元素 | |
| Randomly rearrange elements in range using generator |
|
划分:
| Test whether range is partitioned |
| |
Partition range in two | 将满足某谓词的元素都放到前面 | ||
Partition range in two - stable ordering | 将满足某谓词的元素都放到前面并维持原顺序 | ||
Partition range into two |
| ||
Get partition point |
|
排序:
| Sort elements in range | 以很好的平均效率排序 | |
Sort elements preserving order of equivalents | 排序,并维持相同元素的原有顺序 | ||
Partially sort elements in range | 将序列的前一部分排好序 | ||
Copy and partially sort range |
| ||
Check whether range is sorted |
| ||
Find first unsorted element in range |
| ||
Sort element in range | 将第N个元素放到它正确的位置 |
二分检索:(使用下面算法时,容器需要先sort排序)
| Return iterator to lower bound | 找到大于等于某值的第一次出现 | |
Return iterator to upper bound | 找到大于某值的第一次出现 | ||
Get subrange of equal elements | 找到(在不破坏顺序的前提下)可插入给定值的最大范围 | ||
Test if value exists in sorted sequence | 在有序序列中确定给定元素是否存在 |
集合算法:
归并 | Merge sorted ranges | 归并两个有序序列 | |
Merge consecutive sorted ranges | 归并两个接续的有序序列 | ||
序结构上的集合操作 | Test whether sorted range includes another sorted range | 一序列为另一个序列的子序列时为真 | |
Union of two sorted ranges | 构造两个集合的有序并集 | ||
Intersection of two sorted ranges | 构造两个集合的有序交集 | ||
Difference of two sorted ranges | 构造两个集合的有序差集 | ||
Symmetric difference of two sorted ranges | 构造两个集合的有序对称差集(并-交) |
堆:
| Push element into heap range | 向堆中加入元素 | |
Pop element from heap range | 从堆中弹出元素 | ||
Make heap from range | 从序列构造堆 | ||
Sort elements of heap | 给堆排序 | ||
Test if range is heap |
| ||
Find first element not in heap order |
|
最大小值计算:
| Return the smallest |
| |
Return the largest |
| ||
Return smallest and largest elements |
| ||
Return smallest element in range |
| ||
Return largest element in range |
| ||
Return smallest and largest elements in range |
|
其他:
| Lexicographical less-than comparison |
| |
Transform range to next permutation |
| ||
Transform range to previous permutation |
|
如果有《C++ Primer》的可以参考“附录——算法简介”里也有简单介绍。
最后欢迎大家访问我的个人网站:1024s