C++:标准库函数(sort、rand等)
来源:互联网 发布:矩阵uv分解 编辑:程序博客网 时间:2024/05/19 03:45
STL标准库里有许多诸如排序、生成随机数的函数,使用前包含头文件
#include <algorithm>
排序:sort
这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是[a,b)。简单来说,有一个数组int a[100],要对从a[0]到a[99]的元素进行排序,只要写sort(a,a+100)
就行了,默认的排序方式是升序。
对vector对象排序:
sort(s.begin(),s.end());
- 排序的数据类型不局限于整数,只要是定义了
<
运算的类型都可以,比如字符串类string。 - 如果是没有定义
<
运算的数据类型,或者想改变排序的顺序,就要用到第三参数——比较函数。比较函数是一个自己定义的函数,返回值是bool型,它规定了什么样的关系才是“小于”。想把刚才的整数数组按降序排列,可以先定义一个比较函数cmp
bool cmp(int a,int b){//升序排列,如果改为return a>b,则为降序 return a<b;}
排序的时候就写sort(a,a+100,cmp);
- 标准库的sort算法实现,采用快排的思想,平均的时间复杂度是 N(logN);算法中还提供了其他的集中排序函数
sort_heap() stable_sort()
,时间复杂度都在 N(logN)。
生成随机数:rand、srand
rand函数的头文件在<stdlib.h>
中,如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX
间。RAND_MAX
定义在stdlib.h
, 其值为2147483647。
如果想要生成某个范围内的随机数,可以
int r=rand()%n;
但rand函数生成的只是伪随机数,要想生成真正的随机数,还需要用srand函数进行初始化。
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
使用当前时钟作为随机数种子
srand( (int)time(0) );int r=rand()%n;
0 0
- C++:标准库函数(sort、rand等)
- C++标准模板库函数sort
- C标准库函数(一)---内存分配
- C标准库函数浅析
- C标准库函数(a)
- .调用标准C库函数
- c标准库函数
- C标准库函数浅析
- c标准库函数列表
- C标准库函数
- C: 标准库函数 floor
- C标准库函数
- 标准C库函数包括:
- C 标准库函数
- C语言标准库函数
- C语言 标准库函数
- C语言标准库函数
- c语言标准库函数
- saltstack grains
- 天气插件
- MyBatis传入多个参数的问题
- saltstack pillar
- 如何判断链表中是否有环
- C++:标准库函数(sort、rand等)
- Spiceserver中链表的使用
- saltstack 安装 apache
- MUI 和 framework7区别之 UI组件的几点差异
- saltstack 文件目录管理
- java enum详解
- <html>form(表单)
- 设计模式之Proxy模式(代理模式)
- saltstack 远程命令