【STL学习】算法篇

STL算法参考网站,大部分算法附实现源码。
http://www.cplusplus.com/reference/algorithm/

一些笔记,有点乱(忘了就翻翻上面的网站)
all_of(vec.begin(),vec.end(),比较方法 ) //所有元素都满足的条件
any_of(); //有满足条件的

for_each(); //遍历容器

find find_if(first,last,pred) (查找 / 查找第一个满足pred的);
find_if_not //查找第一个不满足挑条件的)
find_end() ; //找最后一个子序列
find_first_of(v1.begin(), v1.end(),v2.begin(), v2.end(),) //返回v2所有元素中的某个元素, 最先出现在v1中的位置

adjacent(first, last) //找到第一对连续相等的位置

mismatch(v1.begin,v1.end(),v2.begin(),pred) //返回v1与v2从第一个元素开始 第一个不满足pred的元素, 容桂v2短于v1,就会++ 超出v2范围 出错)

equal(v1.begin(),v1,end(),v2.begin()) //判断v1的元素与v2.begin() 开始的元素相等 v2要比 v1

is_permutation( v1.begin(),v1,end(),v2.begin()) //判断v1等于v2从begin()开始,或者是v2从begin开始的子序列,(不考虑顺序,会判断v1中的所有元素);

search(v1.begin(),v1,end(),v2.begin().v2.end() ) //寻找v1中的第一个子列v2

search_n(v1.begin(),v1,end(),3,4) //寻找v1中连续3个4的位置

random_shuffle //随机重排

partition //不稳定 把容器分成两个部分, 前部分满足某个条件
stable_partition //功能同上 稳定
partition_copy
is_partition
partition_point //对于已分类的容器,找分界点

sort stable_sort //排序和稳定排序
partial_sort 部分排序(排序出整体的前N个,并不是排序前N个);
partial_sort_copy 部分排序,结果输出到另一个容器
is_sort //判断已序
nth_element 排序前面N个元素,(从大到小)
is_sort_until //判读是否已部分排序

merge(); //合并
inplace_merge(); //内部归并排序

set_union; //去掉重复元素后合并
set_intersection //取两个容器交集
set_difference //取容器差集
set_symmetric_difference //取两个容器不相交的部分

//对排序算法
make_heap 构造堆
push_heap 往堆化容器内添加
pop_heap 弹出( 不会删除元素 ,缩小堆化的范围)
is_heap 容器是否堆化
is_heap_until 判断容器的前面N个元素是否堆化

你可能感兴趣的:(【STL学习】算法篇)