相比现在的一些脚本语言,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 |