【STL算法】常用算法原型整理

简介: 【STL算法】常用算法原型整理

STL中常用算法的算法原型整理如下

1. //查找重复元素
2. _NODISCARD _FwdIt adjacent_find(const _FwdIt _First, _FwdIt _Last, _Pr _Pred);
3. _NODISCARD _FwdIt adjacent_find(const _FwdIt _First, const _FwdIt _Last);
4. //二分查找(有序数列)
5. _NODISCARD bool binary_search(_FwdIt _First, _FwdIt _Last, const _Ty& _Val, _Pr _Pred);
6. _NODISCARD bool binary_search(_FwdIt _First, _FwdIt _Last, const _Ty& _Val);
7. //计数
8. _NODISCARD _Iter_diff_t<_InIt> count(const _InIt _First, const _InIt _Last, const _Ty& _Val);
9. //计数(符合条件元素个数)
10. _NODISCARD _Iter_diff_t<_InIt> count_if(_InIt _First, _InIt _Last, _Pr _Pred);
11. //查找等于_Val的元素
12. _NODISCARD _InIt find(_InIt _First, const _InIt _Last, const _Ty& _Val);
13. //根据条件查找
14. _NODISCARD _InIt find_if(_InIt _First, const _InIt _Last, _Pr _Pred);
15. //合并两个有序序列
16. _DestTy* merge(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _DestTy (&_Dest)[_DestSize], _Pr _Pred);
17. _OutIt merge(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred);
18. _DestTy* merge(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _DestTy (&_Dest)[_DestSize]);
19. _OutIt merge(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest);
20. //排序
21. void sort(const _RanIt _First, const _RanIt _Last, _Pr _Pred);
22. void sort(const _RanIt _First, const _RanIt _Last);
23. //随机排序
24. void random_shuffle(_RanIt _First, _RanIt _Last, _RngFn&& _RngFunc);
25. void random_shuffle(_RanIt _First, _RanIt _Last);
26. //倒序
27. void reverse(const _BidIt _First, const _BidIt _Last);
28. //复制
29. _DestTy* copy(_InIt _First, _InIt _Last, _DestTy (&_Dest)[_DestSize]);
30. _OutIt copy(_InIt _First, _InIt _Last, _OutIt _Dest);
31. //替换
32. void replace(const _FwdIt _First, const _FwdIt _Last, const _Ty& _Oldval, const _Ty& _Newval);
33. //按条件替换
34. void replace_if(const _FwdIt _First, const _FwdIt _Last, _Pr _Pred, const _Ty& _Val);
35. //交换
36. void swap(tuple<_Types...>& _Left, tuple<_Types...>& _Right);
37. void swap(basic_string<_Elem, _Traits, _Alloc>& _Left, basic_string<_Elem, _Traits, _Alloc>& _Right);
38. void swap(function<_Fty>& _Left, function<_Fty>& _Right);
39. void swap(_Ty (&_Left)[_Size], _Ty (&_Right)[_Size]);
40. void swap(_Ty& _Left, _Ty& _Right);
41. void swap(weak_ptr<_Ty>& _Left, weak_ptr<_Ty>& _Right);
42. void swap(shared_ptr<_Ty>& _Left, shared_ptr<_Ty>& _Right);
43. void swap(pair<_Ty1, _Ty2>& _Left, pair<_Ty1, _Ty2>& _Right);
44. //填充
45. void fill(const _FwdIt _First, const _FwdIt _Last, const _Ty& _Val);
46. //集合并集
47. _DestTy* set_union(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _DestTy (&_Dest)[_DestSize], _Pr _Pred);
48. _DestTy* set_union(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _DestTy (&_Dest)[_DestSize]);
49. _OutIt set_union(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred);
50. _OutIt set_union(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest);
51. //交集
52. _DestTy* set_intersection(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _DestTy (&_Dest)[_DestSize], _Pr _Pred);
53. _DestTy* set_intersection(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _DestTy (&_Dest)[_DestSize]);
54. _OutIt set_intersection(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred);
55. _OutIt set_intersection(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest);
56. //差集
57. _DestTy* set_difference(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _DestTy (&_Dest)[_DestSize], _Pr _Pred);
58. _DestTy* set_difference(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _DestTy (&_Dest)[_DestSize]);
59. _OutIt set_difference(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred);
60. _OutIt set_difference(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest);
61. //遍历
62. _Fn for_each(_InIt _First, _InIt _Last, _Fn _Func);
63. //遍历并修改
64. _DestTy* transform(const _InIt _First, const _InIt _Last, _DestTy (&_Dest)[_DestSize], _Fn _Func);
65. _OutIt transform(const _InIt _First, const _InIt _Last, _OutIt _Dest, _Fn _Func);
66. _DestTy* transform(const _InIt1 _First1, const _InIt1 _Last1, _InIt2 _First2, _DestTy (&_Dest)[_DestSize], _Fn _Func);
67. _OutIt transform(const _InIt1 _First1, const _InIt1 _Last1, const _InIt2 _First2, _OutIt _Dest, _Fn _Func);
68. _DestTy* transform(const _InIt1 _First1, const _InIt1 _Last1, _RightTy (&_First2)[_RightSize], _DestTy (&_Dest)[_DestSize], _Fn _Func);
69. _OutIt transform(const _InIt1 _First1, const _InIt1 _Last1, _RightTy (&_First2)[_RightSize], const _OutIt _Dest, _Fn _Func);


相关文章
|
3月前
|
算法 搜索推荐 图计算
图计算中的社区发现算法是什么?请解释其作用和常用算法。
图计算中的社区发现算法是什么?请解释其作用和常用算法。
29 0
|
6月前
|
算法 搜索推荐 C++
【C++STL基础入门】vector运算和遍历、排序、乱序算法
【C++STL基础入门】vector运算和遍历、排序、乱序算法
|
1月前
|
存储 算法 JavaScript
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)(二)
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)
28 0
|
1月前
|
算法 搜索推荐 程序员
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)(一)
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)
35 0
|
2月前
|
存储 算法 搜索推荐
C++模板与STL【常用算法】
C++模板与STL【常用算法】
|
2月前
|
算法 C++ 容器
【C++】 --- STL常用算法总结(三)
【C++】 --- STL常用算法总结
27 0
|
2月前
|
存储 算法 搜索推荐
【C++】 --- STL常用算法总结(二 )
【C++】 --- STL常用算法总结
35 0
|
2月前
|
算法 C++ 容器
【C++】 --- STL常用算法总结(一)
【C++】 --- STL常用算法总结
33 0
|
6月前
|
算法 数据可视化 Java
数学建模常用算法:启发式优化算法合辑(内含多种智能优化算法,使用java实现算法、详细注释、并进行结果可视化)
数学建模常用算法:启发式优化算法合辑(内含多种智能优化算法,使用java实现算法、详细注释、并进行结果可视化)
147 2
|
3月前
|
算法 C++ 容器
【C++STL基础入门】list的运算符重载和关于list的算法
【C++STL基础入门】list的运算符重载和关于list的算法
【C++STL基础入门】list的运算符重载和关于list的算法