fork download
  1. #include <algorithm>
  2. #include <functional>
  3. #include <iostream>
  4. #include <tuple>
  5. #include <vector>
  6.  
  7. int main() {
  8. std::vector<int> first {5, 4, 3, 2, 1},
  9. second {1, 2, 3, 4, 5},
  10. third {6, 7, 8, 9, 10};
  11.  
  12. typedef std::tuple<int, int, int> Tuple;
  13. std::vector<Tuple> tuples;
  14. for (auto i = 0u; i < first.size(); ++i) {
  15. tuples.push_back(std::make_tuple(first[i], second[i], third[i]));
  16. }
  17.  
  18. for (const auto& item : tuples) {
  19. std::cout << std::get<0>(item) << " "
  20. << std::get<1>(item) << " "
  21. << std::get<2>(item) << std::endl;
  22. }
  23. std::cout << std::endl;
  24.  
  25. std::sort(tuples.begin(), tuples.end(),
  26. [](const Tuple& lhs, const Tuple& rhs) {
  27. return std::get<0>(lhs) < std::get<0>(rhs);
  28. });
  29.  
  30. for (const auto& item : tuples) {
  31. std::cout << std::get<0>(item) << " "
  32. << std::get<1>(item) << " "
  33. << std::get<2>(item) << std::endl;
  34. }
  35.  
  36. return 0;
  37. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
5 1 6
4 2 7
3 3 8
2 4 9
1 5 10

1 5 10
2 4 9
3 3 8
4 2 7
5 1 6