vector二維數組如何排序


1.sort()函數,默認的是對二維數組按照第一列的大小對每行的數組進行排序。所以可以加上cmp函數用按照任意列對數組進行排序。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 //按照二維數組第一列的大小對每個一維數組升序排序,
 4 //如何第一列相同時,按照第二列大小對每行的數組降序排序
 5 bool cmp(vector<int>&a,vector<int>&b){
 6     if(a[0]!=b[0]) return a[0]<b[0];
 7     else return a[1]>b[1];
 8 }
 9 int main()
10 {
11     vector<vector<int> >a(6);
12     int x;
13     for(int i=0;i<6;i++){
14         for(int j=0;j<2;j++){
15             cin>>x;
16             a[i].push_back(x);
17         }
18     }
19     cout<<endl;
20     sort(a.begin(),a.end(),cmp);
21     for(int i=0;i<6;i++){
22         for(int j=0;j<2;j++){
23             cout<<a[i][j]<<" ";
24         }
25         cout<<endl;
26     }
27     return 0;
28 }

輸入的數組和排序的數組如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM