c++ 对pair类型的vector按pair。first排序
时间: 2024-11-28 19:09:20 浏览: 27
在C++中,如果你想按照`std::pair`的`.first`元素对其进行排序,可以使用`std::sort`函数配合自定义的比较函数。首先,你需要创建一个`std::vector<std::pair<type, type>>`,然后定义一个比较函数模板,比如`bool comparePairs(const std::pair<type, type>& a, const std::pair<type, type>& b)`,这个函数应该返回`true`如果`a.first`小于`b.first`。
下面是一个例子,假设我们有一个包含`(int, string)`类型的向量,我们想按第一个整数排序:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
bool compareIntStrings(const std::pair<int, std::string>& a, const std::pair<int, std::string>& b) {
return a.first < b.first;
}
int main() {
std::vector<std::pair<int, std::string>> vec = {{4, "d"}, {1, "a"}, {3, "c"}};
// 排序vector
std::sort(vec.begin(), vec.end(), compareIntStrings);
// 打印结果
for (const auto& pair : vec) {
std::cout << pair.first << ": " << pair.second << "\n";
}
return 0;
}
```
在这个例子中,`compareIntStrings`函数用于告诉`std::sort`如何根据`.first`字段进行升序排列。
阅读全文