C++中常用函数记录

发现很多常见功能都已经封装实现 每次却还自己吭吭的写,费力不讨好。。。
故在此记录。

排序算法

//函数名   功能描述
sort    //对给定区间所有元素进行排序
stable_sort //对给定区间所有元素进行稳定排序
partial_sort    //对给定区间所有元素部分排序
partial_sort_copy   //对给定区间复制并排序
nth_element //找出给定区间的某个位置对应的元素
is_sorted   //判断一个区间是否已经排好序
partition   //使得符合某个条件的元素放在前面
stable_partition    //相对稳定的使得符合某个条件的元素放在前面
sort()函数:
  • 头文件: #include<algorithm>

其实sort()并不能叫做快速排序,而应该说成智能排序;它正常情况下,会使用快排,但是发现快排恶化的话,会自动调整成其他排序来辅助。是最高效的排序。

//1.默认升序排列
sort(begin,end); //默认是从小到大排序,begin表示要排序元素的首地址,end表示要排序元素的结束地址


//2.自定义排序函数 升降序
bool cmp(int a,int b){  
    return a>b;//从大到小排序,从小到大排序为a<b  
}
sort(begin,end,cmp);//自定义排序函数cmp,要实现从大到小排序,需要自己写排序函数


//3.使用C++ STL强大功能实现排序规则,  
//从小到大排序,比较函数设置为:less<数据类型>  
//从大到小排序,比较函数设置为:greater<数据类型>    
sort(a,a+10,greater<int>);//从大到小排序,从小到大则为less<int> 
qsort() 函数
  • 头文件: #include<stdlib.h>

根据给定的比较函数给一个数组快速排序,是通过指针移动实现排序功能。排序之后的结果仍然放在原来数组中

qsort(数组名,数组元素个数,每个元素大小,比较函数);
qsort(a,n,sizeif(a[0]),cmp);

针对数组, vector 不可以直接使用

//自定义比较函数,从大到小排序  
int compare(const void *a,const void *b)  
{  
     return *(int*)b-*(int*)a;//从大到小排序,若从小到大牌组为:*(int*)a-*(int*)b  
     // 如果是字符型,就把int换为char。
}  
 qsort((void*)a,20,sizeof(int),compare);  
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值