fork download
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. struct Move
  6. {
  7. bool operator < (const Move&) = delete;
  8.  
  9. std::string s;
  10. };
  11.  
  12. template <typename T>
  13. struct Wrapper{
  14. Wrapper(const T & pair): pair_mem(pair) {}
  15.  
  16. bool operator <(const Wrapper& rhs) const {
  17. return pair_mem.first < rhs.pair_mem.first;
  18. }
  19. T pair_mem;
  20. };
  21.  
  22. int main() {
  23. std::vector<Wrapper<std::pair<int, Move>>> v{{{5, {"World"}}}, {{0, {"Hi"}}}, {{42, {"World"}}}};
  24.  
  25. std::sort(v.begin(), v.end());
  26.  
  27. for (const auto& w : v) {
  28. std::cout << w.pair_mem.first << " " << w.pair_mem.second.s << std::endl;
  29. }
  30. }
  31.  
Success #stdin #stdout 0s 4584KB
stdin
Standard input is empty
stdout
0 Hi
5 World
42 World