1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 using namespace std; 5 bool cmp(const vector<int> &a, const vector<int> &b) { 6 return a[1] < b[1]; 7 } 8 int main() 9 { 10 vector<vector<int>> vet; 11 int RR, CC; 12 cin >> RR >> CC; 13 for (int i = 0; i<RR; i++) //輸入數據 14 { 15 vector<int> myvector; 16 for (int j = 0; j<CC; j++) 17 { 18 int tempVal = 0; 19 cin >> tempVal; 20 myvector.push_back(tempVal); 21 } 22 vet.push_back(myvector); 23 } 24 cout << vet.size() << endl; //計算行數 25 cout << vet[0].size() << endl; //計算列數 26 sort(vet.begin(), vet.end()); //僅對第一列進行排序 27 for (int i = 0; i < RR; i++) 28 { 29 30 for (int j = 0; j < CC; j++) 31 { 32 cout << vet[i][j] << " "; 33 } 34 cout << endl; 35 } 36 sort(vet.begin(), vet.end(),cmp);// 利用cmp可以根據其他列排序。 37 for (int i = 0; i < RR; i++) 38 { 39 40 for (int j = 0; j < CC; j++) 41 { 42 cout << vet[i][j] << " "; 43 } 44 cout << endl; 45 } 46 system("pause"); 47 return 0; 48 }
方法二:插入的不同方法
#include<iostream> #include<vector> #include<set> #include<algorithm> using namespace std; int main() { int r = 2; int c = 3; vector<vector<int>> vet(r,vector<int>(c)); for (int n = 0; n<r*c; n++) { vet[n / c][n%c] = 45; } for (int n = 0; n<r*c; n++) { cout << vet[n / c][n%c] << endl; } system("pause"); return 0; }