黑马程序最后
这里写自定义目录标题
- 内建
- stl常用算法
- adjacent_find
- binary_search
- count
- count if
- 常用排序算法
- 常用拷贝和替换
- replace
- 常用算术生成算法
- 常用集合算法
https://gitee.com/jiangjiandong/Cpp-0-1-Resource/blob/master/%E7%AC%AC5%E9%98%B6%E6%AE%B5-C++%E6%8F%90%E9%AB%98%E7%BC%96%E7%A8%8B%E8%B5%84%E6%96%99/%E6%8F%90%E9%AB%98%E7%BC%96%E7%A8%8B%E8%83%BD%E5%8A%9B%E8%B5%84%E6%96%99/%E8%AE%B2%E4%B9%89/C++%E6%8F%90%E9%AB%98%E7%BC%96%E7%A8%8B.md#541-copy
内建
算术仿函数
关系仿函数
逻辑仿函数
使用内建函数对象,需要引入头文件 #include<functional>
plus p; 默认同种类型
stl常用算法
adjacent_find
查找相邻相同元素
binary_search
二分查找法查找效率很高,值得注意的是查找的容器中元素必须的有序序列
count
总结: 统计自定义数据类型时候,需要配合重载 operator==
count if
常用排序算法
**总结:**random_shuffle洗牌算法比较实用,使用时记得加随机数种子
常用拷贝和替换
**总结:**利用copy算法在拷贝时,目标容器记得提前开辟空间
copy(iterator beg, iterator end, iterator dest);
replace
常用算术生成算法
算术生成算法属于小型算法,使用时包含的头文件为 #include <numeric>
fill(v.begin(), v.end(), 100); 区间内全部填充
常用集合算法
set_intersection
// 注意:两个集合必须是有序序列
//返回目标容器的最后一个元素的迭代器地址
vector<int>::iterator itEnd = set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), vTarget.begin());for_each(vTarget.begin(), itEnd, myPrint());
如果不用itend 用设置的结束点,会有很多0 是由于原本的开辟空间较大
两个集合相同的元素放在一起
两个集合不重复的元素放在一起
差集他这里分两种
v1和v2的差集 就是v1中减去v2中存在的
v2和v1的差集 就是v2中减去v1中存在的