在平常的排序过程中我么或许常常会犯难,遇到普通的数组或许还好,但是像结构体这样的数据多了难免会有些麻烦,
我查阅资料之后找到了一个函数这个函数是库里面自带的只需要头文件#include<algorithm>
下面讲讲详细用法,首先sort(a,a+n,cmp)它里面有三个变量
a代表我们的结构体的简称,这里绝对不能写结构体的名字
a+n,a就是简称,n代表我们有多少条数据需要排序
cmp代表排序的方法是一个bool函数:是以结构体中的那个数据排序的,从大到小或者其他
下面是示例代码:
主要代码:
void sortgroup() { sort(sc,sc+20,cmp); int i=0; char sname[20]={0}; for(i=0;i<20;i++) { if(strcmp(sc[i].sname,sname)!=0) printf("学校名称:%-5s\t 团体分数:%-5d\t 男子总分:%-5d\t 女子总分:%-5d\n ",sc[i].sname,sc[i].score1,sc[i].scorem,sc[i].scorew); } }
cmp函数:
bool cmp(score a,score b) { return a.score1>b.score1; }
这个函数score就是我们的结构体,可以出它是以score1为标准进行排序,并且是从小到大排序的
sort函数这一快并没有很复杂的地方只要照着写就行
同理我们不仅可以用sort函数对结构体排列也可以对于数组进行排列原理相同,写法相同
标签:sort,函数,score,score1,排序,cmp From: https://www.cnblogs.com/222wan/p/17505817.html