📅  最后修改于: 2023-12-03 14:59:49.848000             🧑  作者: Mango
在 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++ 中元组向量的排序方法。