相比现在的一些脚本语言,C++在开发效率上显得有点跟不上节奏,主要是 C ++ 在给人感觉能够直接使用的第三方库太少,相比Python、Node.js等一些脚本语言,他们在开源社区有人源源不断的提供开源库,使得你在开发项目时可以像堆积木一样玩耍。
C++ STL
- 标准模板库(STL)里面提供了一些常用的函数接口,这些常用的函数主要是配合STL里面的容器、迭代器进行使用。
STL算法部分函数分类
- 不进行修改的顺序操作函数(顺序遍历)
| 函数名 | 函数说明 |
|---|---|
| all_of | 对所有元素进行判断,是否所有元素都满足条件(C++11) |
| any_of | 判断是否至少有一个元素满足条件(C++11) |
| none_of | 是否没有任何一个满足条件(C++11) |
| for_each | 对每一个成员调用函数 |
| find | 查找某个值 |
| find_if | 查找某个满足条件的值 |
| mismatch | 返回第一个不能匹配的位置 |
| equal | 判断两个容器内数值是否相同 |
| if_permutation | 侧时判断是否为另一组元素的排列 |
| search | 查询子序列 |
| search_n |
- 有修改的顺序操作函数
- 分割(Partitions)
| 函数名 | 函数说明 |
|---|---|
| is_partitioned | 测试一个范围是否被分割 |
| row 2 col 1 | row 2 col 2 |
- 排序
| 函数名 | 函数说明 |
|---|---|
| sort | 在一个范围内进行排序 |
| stable_sort | 保持相对顺序进行排序(稳定排序) |
| partial_sort | 部分排序 |
| is_sorted | 检查是否已经排序 |
| is_sorted_until | 查找第一个未排好序的元素 |
| nth_element |
- 二叉查找(二分查找){需要时有序序列}
| 函数名 | 函数说明 |
|---|---|
| lower_bound | 返回下界的迭代器 |
| upper_bound | 返回上界的迭代器 |
| equal_range | |
| binary_search | 判断某个值是否已经在一个有序的列表中 |
- 归并(需要是有序序列)
| 函数名 | 函数说明 |
|---|---|
| merge | 归并排序 |
- 堆
| 函数名 | 函数说明 |
|---|---|
| push_heap | 添加元素到堆 |
| pop_heap | 从堆里弹出元素 |
| make_heap | 从某个范围的数据里面构造堆 |
| sort_heap | 对一个堆进行排序 |
| is_heap | 测试该范围是否为一个堆 |
| is_heap_until | 查找第一个违反堆规则的元素 |
- 最小/最大
| 函数名 | 函数说明 |
|---|---|
| min | |
| max | |
| minmax | |
| min_element | |
| max_element | |
| minmax_element |
- 其它
| 函数名 | 函数说明 |
|---|---|
| lexicographical_compare | |
| next_permutation | |
| prev_permutation |

本文详细介绍了C++标准模板库(STL)中的算法部分,包括不进行修改的顺序操作函数、分割(Partitions)、排序、二叉查找、归并、堆操作以及其他常用算法,并解释了它们的功能和应用场景。
2232

被折叠的 条评论
为什么被折叠?



