【笔记】STL的七种武器(三)算法

STL中算法大致分为四类:

1、非可变序列算法:

  指不直接修改其所操作的容器内容的算法。

2、可变序列算法:

  指可以修改它们所操作的容器内容的算法。

3、排序算法:

  包括对序列进行排序和合并的算法、搜索算法以及有序序列上的集合操作。

4、数值算法:

  对容器内容进行数值计算

 

1.sort()

sort(a+0,a+100);或 sort(a+0,a+100,cmp); 默认的排序方式 是升序。

sort(v.begin(), v.end(), less <int > ( ) );//升

sort(v.begin(), v.end(), greater <int > ());//降

 

2.lower_bound() / upper_bound()

操作对象 可以是vector、set以及map,前提是待查找序列是一个非降序列

Priority_queue并不是有序容器,无法使用。

  int a[]={0,1,2,2,3};

  printf("%d\n",lower_bound(a,a+5,2,cmp)-a);   

  printf("%d\n",upper_bound(a,a+5,2,cmp)-a);

  结果:2 4

参数:起始地址,结尾地址,左闭右开。二分查找的数值

 

3.next_permutation / prev_permutation

 

4.random_shuffle(a+1,a+n+1)

   对一个元素序列进行重新排序。 主要功能:随机化程序、生成数据。

 

posted @ 2022-02-18 01:12  心若笺诗  阅读(38)  评论(0编辑  收藏  举报