从c到c++ algorithm头文件

algorithm 是处理一定范围的数据,是为数组和容器指定的;

不修改序列:

1.for_each(begin,end,myfunction),堆一定范围内的所有元素进行一个操作,

相当于

for(auto it=begin;it!=end;it++)
{
  function(*it);  
}

 2.find(fpos,lastpos,target)//返回一个迭代器,指针,如果没有就是lastpos

也适用于容器,和单独类的下标不同,string.find()返回的是第一次出现的索引下标;

3.count (fpos,latpos,target) 返回的是出现的次数没有返回0,只能寻找一个个单独的对像,不能寻找局部,例如查找子窜;

修改序列:

1.reverse(begin,end);

2.rotate(旋转)

3.stabe_partition()维持原有的相对顺序;

4.sort

  1.sort(begin,end,cmp比较器);传入一个对象也行,重载括号

  2.stable_sort()//默认升序,比较结果相同的值保持他们的相对顺序;

  3.nth_element(begin,要定位的第n个元素的地址,end);

  4.binary_search(begin,end,target)二分查找,目标有序;存在返回地址,不存在返回最后一个

  5.upper_bound(begin,end,20)第一个比20大的数的指针

  6.lower_bound(大于等于目标值的最大数)都是上升序列的规则;

next_permutation()在这个范围内的元素重拍到更加大的一个字典序排列,初始状态有序;

原文地址:https://www.cnblogs.com/hjw201983290498/p/12728902.html