📜  C++中对对的排序向量设置1(按第一和第二的顺序排序)(1)

📅  最后修改于: 2023-12-03 14:39:56.625000             🧑  作者: Mango

C++中对对的排序向量设置1(按第一和第二的顺序排序)

在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的自定义比较函数,它接受两个参数,即要比较的对对。比较函数首先比较两个对对的第一个元素,如果第一个元素相等,则比较第二个元素。根据比较结果返回truefalse,以实现排序功能。

main函数中,我们创建了一个存储对对的向量,并添加了一些对对到向量中。然后,我们使用std::sort函数对向量进行排序,并传入自定义比较函数作为第三个参数。最后,我们遍历排好序的向量,将每个对对的元素输出到控制台。

以上代码的输出结果为:

(1, 2)
(1, 5)
(2, 1)
(2, 3)
(3, 4)

这是根据对对的第一和第二个元素排序后得到的结果。

希望以上介绍对您有所帮助!