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 }
输入的数组和排序的数组如下: