fork(2) download
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <numeric>
  4. #include <vector>
  5. using namespace std;
  6.  
  7. int main() {
  8. vector<int> values = {7, 5, 8, 2, 6, 8, 10};
  9. vector<int> indices(values.size());
  10. iota(indices.begin(), indices.end(), 0);
  11. cout << "vorher:\n";
  12. for (auto i: indices)
  13. cout << i << '(' << values[i] << ") ";
  14.  
  15. std::sort(indices.begin(), indices.end(),
  16. [values](int a, int b) {return values[a] < values[b];}
  17. );
  18.  
  19. cout << "\nnachher:\n";
  20. for (auto i: indices)
  21. cout << i << '(' << values[i] << ") ";
  22.  
  23. return 0;
  24. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
vorher:
0(7) 1(5) 2(8) 3(2) 4(6) 5(8) 6(10) 
nachher:
3(2) 1(5) 4(6) 0(7) 2(8) 5(8) 6(10)