nyoj-8-一种排序

 1 #include<stdio.h>
 2 #include<algorithm>
 3 #include<string.h>
 4 struct tt
 5 {
 6     int n,l,w;
 7 }t[1001];
 8 bool cmp(tt a,tt b)
 9 {
10     return a.n!=b.n?a.n<b.n:a.l!=b.l?a.l<b.l:a.w<b.w;
11 }
12 int main()
13 {
14     int n,i,m,temp;
15     scanf("%d",&n);
16     while(n--)
17     {
18         scanf("%d",&m);
19         for(i=0;i<m;i++)
20         {
21             scanf("%d%d%d",&t[i].n,&t[i].l,&t[i].w);
22             if(t[i].l<t[i].w)
23                 temp=t[i].l,t[i].l=t[i].w,t[i].w=temp;
24         }
25         std::sort(t,t+m,cmp);
26         printf("%d %d %d
",t[0].n,t[0].l,t[0].w);
27         for(i=1;i<m;i++)
28             if(t[i].n!=t[i-1].n||t[i].l!=t[i-1].l||t[i].w!=t[i-1].w)
29                 printf("%d %d %d
",t[i].n,t[i].l,t[i].w);
30     }
31     return 0;
32 }

sort的三级结构体排序

原文地址:https://www.cnblogs.com/nylg-haozi/p/3181405.html