> 文章列表 > 黑马程序最后

黑马程序最后

黑马程序最后

这里写自定义目录标题

  • 内建
  • 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中存在的