博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
stl实现结构体排序关键语法要点(sort)
阅读量:7059 次
发布时间:2019-06-28

本文共 1554 字,大约阅读时间需要 5 分钟。

sort函数,调用时使用函数头:

#include <algorithm>

sort(begin,end);用来表示一个范围。

1 int _tmain(int argc, _TCHAR* argv[]) 2 { 3  int a[20]={
2,4,1,23,5,76,0,43,24,65},i; 4 for(i=0;i<20;i++) 5 cout<
<
View Code

sort默认是升序排列的,当要更改为降序排列:

那么首先是自己写一个比较函数,然后调用三个参数的sort即可

调用三个参数的sort:sort(begin,end,compare)

1 bool compare(int a,int b) 2 { 3       return a
b,则为降序 4 5 } 6 7 int _tmain(int argc, _TCHAR* argv[]) 8 { 9 int a[20]={
2,4,1,23,5,76,0,43,24,65},i;10 for(i=0;i<20;i++)11 cout<
<
View Code

 

struct name{

char a[20];
int b;
}ch[max];

bool cmp(name A, name B){

return A.b>B.b;
}

 

for(int i=0; i<n; i++){

cin>>ch[i].a>>ch[i].b;
}
sort(ch, ch+n, cmp);

for(int i=0; i<n; i++){

cout<<ch[i].a<<" "<<ch[i].b<<endl;
}

 

当是有一些条件进行排序时,可以使用下边的方式:

题目描述用一维数组存储学号和成绩,然后,按成绩排序输出。 输入描述:输入第一行包括一个整数N(1<=N<=100),代表学生的个数。接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。输出描述:按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。如果学生的成绩相同,则按照学号的大小进行从小到大排序。输入例子:31 902 873 92输出例子:2 871 903 92

  

1 #include 
2 #include
3 #define max 105 4 5 using namespace std; 6 7 struct tianxia{ 8 int p; 9 int q;10 }S[max];11 12 bool cmp(tianxia A,tianxia B){13 if(A.q==B.q){14 return A.p
>N){24 for(int i = 0;i < N; i++){25 cin>>S[i].p>>S[i].q;26 }27 sort(S,S+N,cmp);28 29 for(int i = 0;i < N; i++){30 cout<
<<" "<
<

 

转载于:https://www.cnblogs.com/tianxia2s/p/5365194.html

你可能感兴趣的文章
NOIP2015DAY2T2子串
查看>>
5种PHP创建数组的方式
查看>>
24. [Ext JS 4] 实战之Load Mask(加载遮罩)的显示与隐藏
查看>>
【C语言】07-基本语句和运算
查看>>
ajax异步获取提示框数据(鼠标悬浮事件)
查看>>
Android 内存使用hprof文件打开方法
查看>>
android入门一
查看>>
MVC项目中怎么浏览html页面
查看>>
sqoop 常用命令整理(二)
查看>>
struts读书笔记
查看>>
delete-node-in-a-bst
查看>>
https://github.com/overboming/ZCAnimatedLabel
查看>>
SqlServer里DateTime转字符串
查看>>
ACID in Hbase
查看>>
日期控件
查看>>
如何撤回经由Outlook2016刚发出的邮件
查看>>
Lock和synchronized
查看>>
netbeans中实体类代码的bug
查看>>
java线程
查看>>
清空文件内容
查看>>