📅  最后修改于: 2023-12-03 14:39:56.625000             🧑  作者: Mango
在C++中,我们可以使用向量(Vector)来存储和处理多个元素。如果我们想要对一个向量中的对对(Pair)按照它们的第一和第二个元素的顺序进行排序,我们可以使用自定义的比较函数来实现。
下面是一个示例代码,演示了如何使用自定义的比较函数对对对的向量进行排序,并返回排好序的向量。
#include <iostream>
#include <vector>
#include <algorithm>
// 自定义比较函数
bool comparePairs(const std::pair<int, int>& pair1, const std::pair<int, int>& pair2) {
// 首先比较第一个元素,如果相等则比较第二个元素
if(pair1.first != pair2.first) {
return pair1.first < pair2.first;
}
return pair1.second < pair2.second;
}
int main() {
// 创建一个存储对对的向量
std::vector<std::pair<int, int>> pairs;
// 添加一些对对到向量中
pairs.push_back(std::make_pair(2, 3));
pairs.push_back(std::make_pair(1, 5));
pairs.push_back(std::make_pair(2, 1));
pairs.push_back(std::make_pair(3, 4));
pairs.push_back(std::make_pair(1, 2));
// 使用自定义比较函数对向量进行排序
std::sort(pairs.begin(), pairs.end(), comparePairs);
// 输出排好序的对对
for(const auto& pair : pairs) {
std::cout << "(" << pair.first << ", " << pair.second << ")" << std::endl;
}
return 0;
}
以上代码中定义了一个名为comparePairs
的自定义比较函数,它接受两个参数,即要比较的对对。比较函数首先比较两个对对的第一个元素,如果第一个元素相等,则比较第二个元素。根据比较结果返回true
或false
,以实现排序功能。
在main
函数中,我们创建了一个存储对对的向量,并添加了一些对对到向量中。然后,我们使用std::sort
函数对向量进行排序,并传入自定义比较函数作为第三个参数。最后,我们遍历排好序的向量,将每个对对的元素输出到控制台。
以上代码的输出结果为:
(1, 2)
(1, 5)
(2, 1)
(2, 3)
(3, 4)
这是根据对对的第一和第二个元素排序后得到的结果。
希望以上介绍对您有所帮助!