c++ pair排序
时间: 2023-12-30 16:05:56 浏览: 114
打印作业1
对于C++中的pair,可以使用标准库中的sort函数进行排序。sort函数需要传入一个范围的迭代器,并可以指定一个自定义的比较函数来确定排序的顺序。以下是一个示例代码:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool comparePairs(const pair<int, int>& p1, const pair<int, int>& p2) {
// 按照第一个元素进行升序排序,如果第一个元素相同,则按照第二个元素进行降序排序
if (p1.first == p2.first) {
return p1.second > p2.second;
}
return p1.first < p2.first;
}
int main() {
vector<pair<int, int>> pairs = {{5, 2}, {3, 1}, {4, 3}, {5, 1}, {4, 2}};
sort(pairs.begin(), pairs.end(), comparePairs);
for (const auto& pair : pairs) {
cout << "(" << pair.first << ", " << pair.second << ") ";
}
cout << endl;
return 0;
}
```
运行以上代码,输出会是 `(3, 1) (4, 3) (4, 2) (5, 2) (5, 1)`,即按照第一个元素进行升序排序,如果第一个元素相同,则按照第二个元素进行降序排序。
你也可以根据自己的需求修改comparePairs函数来实现不同的排序方式。
阅读全文