1. 二维数组按列排序
bool cmp(vector<int> a, vector<int> b)
{
if (a[0] != b[0]) return a[0] > b[0]; //从大到小排序
if (a[1] != b[1]) return a[1] > b[1];
if (a[2] != b[2]) return a[2] > b[2];
}
int main()
{
int n;
cin >> n;
int ddhao, left, right;
vector< vector <int> > number(n, vector<int>(3, 0));
for (int i = 0; i < n; ++i)
{
cin >> ddhao >> left >> right;
number[i][0] = ddhao;
number[i][1] = left;
number[i][2] = right;
}
//vector<vector<int>> number = { { 1,4,3 },{ 1,4,7 } ,{ 1,3,5 } ,{ 2,9,4 } ,{ 2,5,8 } ,{ 3,9,6 } };
sort(number.begin(), number.end(), cmp);
for (int i = 0; i < number.size(); ++i)
{
for (int j = 0; j < number[0].size(); ++j)
cout << number[i][j] << " ";
cout << endl;
}
for (auto i : number)
cout << i[0] << i[1] << i[2]<< endl;
system("pause");
return 0;
}
2. map操作
int n, x;
cin >> n;
map<int, int> data;
while (n--)
{
cin >> x;
data[x]++;
}
int max_num = 0;
for (auto it = data.begin(); it != data.end(); ++it)
{
if (data.count(it->first + 1))
max_num = it->second + data[it->first + 1];
max_num = max(it->second, max_num);
}