📜  C++中元组向量的排序(升序)(1)

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

C++中元组向量的排序(升序)

在 C++ 中,元组和向量都是非常实用的容器。元组可以用于将多个值归并为单个对象,而向量则可以像数组一样存储多个值。在某些情况下,你可能需要对一个元组向量(即包含多个元组的向量)进行排序。本文将讨论如何在 C++ 中对元组向量进行排序,以及如何将排序结果输出到控制台。

例子

首先看一下代码,以便了解如何用元组向量对程序进行排序。代码如下所示:

#include <iostream>
#include <vector>
#include <tuple>
#include <algorithm>

int main() {

    // 创建一个元组向量
    std::vector<std::tuple<int, int>> vec;

    // 向向量中添加元素
    vec.emplace_back(2, 10);
    vec.emplace_back(1, 20);
    vec.emplace_back(3, 30);

    // 对向量中的元素进行升序排序
    std::sort(vec.begin(), vec.end(), [](auto &left, auto &right) {
        return std::get<0>(left) < std::get<0>(right);
    });

    // 将排序后的结果输出到控制台
    for (auto &elem : vec) {
        std::cout << std::get<0>(elem) << " " << std::get<1>(elem) << std::endl;
    }

    return 0;
}

在以上代码中,我们首先创建了一个元组向量 vec。该向量包含了三个元素,每个元素是由两个整数组成的元组。

接下来,我们使用 std::sort 算法对向量中的元素进行排序。我们使用了一个 Lambda 表达式来指定排序规则。在这个 Lambda 表达式中,我们通过 std::get 函数获取元组中的第一个元素,并将整个元组与另一个元组进行比较。如果第一个元组小于第二个元组,那么返回 true,反之亦然。这种方式允许我们按照元组的第一个元素进行排序。

最后,我们遍历已排序的元素,并将它们的值输出到控制台。

结论

在 C++ 中,元组向量可以通过使用 std::sort 算法和一个简单的 Lambda 表达式来进行升序排序。你可以使用 std::get 函数来获取元组中的特定元素,并将它们与其他元组进行比较。

希望这篇文章可以帮助你理解 C++ 中元组向量的排序方法。