C++ pair数组排序
时间: 2023-12-31 11:04:55 浏览: 87
好的,针对您的问题,可以使用 STL 中的 sort 函数进行排序。具体实现如下:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
pair<int, int> arr[] = {{3, 1}, {2, 5}, {1, 4}};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n);
for (int i = 0; i < n; i++) {
cout << arr[i].first << " " << arr[i].second << endl;
}
return 0;
}
```
输出结果为:
```
1 4
2 5
3 1
```
其中,sort 函数默认按照 pair 的第一个元素进行升序排序。如果需要按照第二个元素排序,可以自定义比较函数,如下所示:
```cpp
bool cmp(pair<int, int> a, pair<int, int> b) {
return a.second < b.second;
}
int main() {
pair<int, int> arr[] = {{3, 1}, {2, 5}, {1, 4}};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, cmp);
for (int i = 0; i < n; i++) {
cout << arr[i].first << " " << arr[i].second << endl;
}
return 0;
}
```
输出结果为:
```
3 1
1 4
2 5
```
阅读全文