sort 用法最简单到自定义comp
来源:互联网 发布:中国淘宝小模特 编辑:程序博客网 时间:2024/06/04 19:23
从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
转载来自点击打开链接
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法:
1、sort入门:
使用sort需要包含algorithm头文件,完整代码如下
#include<iostream>#include<vector>#include<algorithm>//貌似可以不用,但最好加上。using namespace std;int main(){ vector<int>v; v.push_back(13); v.push_back(23); v.push_back(03); v.push_back(233); v.push_back(113); sort(v.begin(),v.end()); int i=0; for(i=0;i<5;i++) { cout<<v[i]<<endl; } system("pause"); return 0;}
运行结果如下:
3
13
23
113
233
请按任意键继续. . .
可以看到结果是从小到大排序,但如果我需要从大到小排序呢?
2、改写comp从大到小排序。
加入comp函数后代码如下:
#include<iostream>#include<vector>#include<algorithm>using namespace std;bool comp(const int &a,const int &b){ return a>b;}int main(){ vector<int>v; v.push_back(13); v.push_back(23); v.push_back(03); v.push_back(233); v.push_back(113); sort(v.begin(),v.end(),comp); int i=0; for(i=0;i<5;i++) { cout<<v[i]<<endl; } system("pause"); return 0;}
运行结果:
233
113
23
13
3
请按任意键继续. . .
为什么会这样呢?比较时sort函数根据comp函数进行判断输的大小,系统默认a<b时返回真,于是从小到大排,而我的comp函数设定为a>b时返回为真,那么最终得到的排序结果也相应的从小到大变成从大到小。简单吧~~
3、对结构体排序
有了comp函数我们就可以实现对任意结构体任意对象进行排序,只需要对应修改comp函数即可实现。代码如下:
#include<iostream>#include<vector>#include<algorithm>using namespace std;struct ss{ int a,b;};bool comp(const ss &a,const ss &b){ return a.a<b.a;}int main(){ vector<ss>v; ss s1,s2,s3,s4,s5; s1.a=4;s1.b=23; s2.a=1;s2.b=213; s3.a=2;s3.b=231; s4.a=5;s4.b=123; s5.a=3;s5.b=223; v.push_back(s1); v.push_back(s2); v.push_back(s3); v.push_back(s4); v.push_back(s5); sort(v.begin(),v.end(),comp); int i=0; for(i=0;i<5;i++) { cout<<v[i].a<<" "<<v[i].b<<endl; } system("pause"); return 0;}
比如ss结构体中a代表的是索引号,b代表的是索引对应的值,那么我想按索引排序,通过改写comp函数即可实现。
结果:
1 213
2 231
3 223
4 23
5 123
请按任意键继续. . .
0 0
- sort 用法最简单到自定义comp
- 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
- 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
- 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
- sort函数的用法,自定义comp参数。
- C++ sort()函数简单用法
- sort函数的简单用法
- Collections.sort()用法简单介绍
- 接上一篇,sort中comp的应用
- RestKit最简单用法
- HDOJ1425 sort(最简单的hash)
- java sort自定义比较的用法
- unix sort 多字段排序简单用法
- C++ sort()函数一些简单的用法
- 最简单的自定义控件
- 线程池最简单用法
- ViewPager最简单的用法
- Android_RxJava最简单的用法
- 多种流媒体开发复杂度对比
- BZOJ-1036-树的统计Count
- iOS库.a与.framework
- 微信公众平台开发之用数据库实现多图文回复-php(四)
- hdu4734---F(x)(数位dp)
- sort 用法最简单到自定义comp
- IP地址、子网掩码详解
- Installing Apache Nutch on Centos 6
- ArcGIS教程:了解连通性
- IOS之UIWebView的使用
- iOS开发者证书-详解/生成/使用
- linux grep和sed搜索大文件中的错误日志
- 关于Azure的VIP(对外公开的虚拟IP)和DIP(对内使用的内部IP)
- POJ2418--Hardwood Species【map】