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< <
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< <
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 #include2 #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< <<" "<<