c++ tuple 如何排序
时间: 2024-01-21 13:46:40 浏览: 30
在C++中,可以使用 `std::sort()` 算法对 `std::tuple` 进行排序。这里有一个例子可以帮助你更好地理解:
```c++
#include <iostream>
#include <tuple>
#include <algorithm>
#include <vector>
int main() {
std::vector<std::tuple<int, int, int>> vec = {{3, 2, 1}, {1, 3, 2}, {2, 1, 3}};
std::sort(vec.begin(), vec.end(), [](const auto& a, const auto& b) {
return std::get<0>(a) < std::get<0>(b); // 按第一个元素升序排序
});
for (const auto& t : vec) {
std::cout << "(" << std::get<0>(t) << ", " << std::get<1>(t) << ", " << std::get<2>(t) << ")" << std::endl;
}
return 0;
}
```
输出结果为:
```
(1, 3, 2)
(2, 1, 3)
(3, 2, 1)
```
在上面的例子中,我们首先创建了一个 `std::vector<std::tuple<int, int, int>>`,并将三个 `std::tuple` 的实例添加到向量中。然后,我们使用 `std::sort()` 算法对该向量进行排序。在排序函数中,我们使用 `std::get<>()` 函数来获取元组中的元素。在这个例子中,我们按元组中的第一个元素进行升序排序。
你也可以使用其他元素进行排序,只需要改变排序函数即可。