fork(1) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5.  
  6. struct pair {
  7. int a, b;
  8. pair(int a, int b) : a(a), b(b) {}
  9.  
  10. std::ostream &print(std::ostream &out) const {
  11. return (out << "(" << a << ", " << b << ")");
  12. }
  13. };
  14.  
  15. std::ostream &operator<<(std::ostream &out, const pair &p) { return p.print(out); }
  16.  
  17. struct topological_pair_comparator {
  18. bool operator()(const pair &p, const pair &q) const { return p.a<q.a && p.b<q.b; }
  19. } tpc;
  20.  
  21. std::vector<pair> pairs = {
  22. pair(1,1),
  23. pair(1,2),
  24. pair(2,1),
  25. pair(3,1),
  26. pair(1,3),
  27. pair(5,5),
  28. pair(2,2),
  29. pair(4,0)
  30. };
  31.  
  32. int main() {
  33. std::sort(pairs.begin(), pairs.end(), tpc);
  34. for(const pair &p : pairs) std::cout << p << " ";
  35. std::cout << std::endl;
  36. return 0;
  37. }
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
(1, 1) (1, 2) (2, 1) (3, 1) (1, 3) (2, 2) (4, 0) (5, 5)