fork download
  1. #include <vector>
  2. #include <utility>
  3. #include <algorithm>
  4. #include <functional>
  5. #include <iostream>
  6.  
  7. using namespace std;
  8.  
  9. int main() {
  10.  
  11. vector<pair<int, int>> vec;
  12. for (int i = 0; i < 10; i++) {
  13. vec.push_back(make_pair(10 - i, 0));
  14. }
  15.  
  16. auto vecsort = [&vec] {
  17. sort(vec.begin(), vec.end(),
  18. [] (pair<int, int> const &a, pair<int, int> const &b) {
  19. return a.first < b.first;
  20. });
  21. };
  22.  
  23. // vecsort will work as long as vec is in scope.
  24. // vecsort will modify the original vector.
  25. vecsort();
  26. for (auto i : vec) {
  27. std::cout << '(' << i.first << ", " << i.second << ") ";
  28. }
  29. std::cout << endl;
  30.  
  31. vec.push_back(make_pair(-42, 0));
  32. vecsort();
  33. for (auto i : vec) {
  34. std::cout << '(' << i.first << ", " << i.second << ") ";
  35. }
  36. std::cout << endl;
  37. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
(1, 0) (2, 0) (3, 0) (4, 0) (5, 0) (6, 0) (7, 0) (8, 0) (9, 0) (10, 0) 
(-42, 0) (1, 0) (2, 0) (3, 0) (4, 0) (5, 0) (6, 0) (7, 0) (8, 0) (9, 0) (10, 0)