C++如何按照二维数组第二个值排序
时间: 2024-02-15 10:04:35 浏览: 37
C++ 中可以使用 `std::sort` 算法来对二维数组的子数组进行排序,同时使用一个 lambda 表达式来指定排序的规则,示例如下:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<vector<int>> arr = {{1, 3}, {4, 2}, {6, 1}, {8, 5}};
sort(arr.begin(), arr.end(), [](const vector<int>& a, const vector<int>& b) {
return a[1] < b[1];
});
for (const auto& subarr : arr) {
for (const auto& elem : subarr) {
cout << elem << " ";
}
cout << endl;
}
return 0;
}
```
输出:
```
6 1
4 2
1 3
8 5
```
这里使用了一个 `vector<vector<int>>` 来表示二维数组,`sort` 函数的第三个参数是一个 lambda 表达式,它接收两个子数组作为参数,返回是否需要将第一个子数组放在第二个子数组之前。在这个 lambda 表达式中,我们比较了两个子数组的第二个元素的大小,以此来确定它们之间的顺序。