容器排序

 1 #include<iostream>
 2 #include<algorithm> //排序 
 3 #include<vector>    //容器 
 4 using namespace std;
 5 struct stu
 6 {
 7     int num;
 8     int d;
 9     int c;
10     int sum;
11 };
12 bool comp(stu &a,stu &b)   //传引用 
13 {
14     if(a.sum>b.sum) return true;   //true为按()内规则排序 
15     else if(a.sum==b.sum)
16     {
17         if(a.d>b.d) return true;
18         else if(a.d==b.d)
19         {
20             if(a.num<b.num) return true;
21         }
22     }
23     return false;
24 }
25 int main()
26 {
27     vector<stu> s1,s2,s3,s4;   //定义容器 
28     stu s0;
29     int n,l,h,k=0;
30     cin>>n>>l>>h;
31     while(n--){
32         cin>>s0.num>>s0.d>>s0.c;
33         s0.sum=s0.c+s0.d;
34         if(s0.c>=l&&s0.d>=l)
35         {
36             k++;
37             if(s0.c>=h&&s0.d>=h) s1.push_back(s0);   //将()内的元素放在容器尾部 
38         }
39     }
40     sort(s1.begin(),s1.end(),comp);   //
41     cout<<k<<endl;
42     vector<stu>::iterator itr;   //遍历 
43     for(itr=s1.begin();itr!=s1.end();itr++)
44         printf("%d %d %d\n",itr->num,itr->d,itr->c);
45     system("pause");
46     return 0;
47 }

猜你喜欢

转载自www.cnblogs.com/yg02/p/12262749.html