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