fork(2) download
  1. #include <algorithm>
  2. #include <iostream>
  3.  
  4. template <typename T>
  5. std::vector<std::size_t> compute_ordered_indices(const std::vector<T>& v)
  6. {
  7. std::vector<std::size_t> indices(v.size());
  8. std::iota(indices.begin(), indices.end(), 0u);
  9. std::sort(indices.begin(), indices.end(), [&](int lhs, int rhs) {
  10. return v[lhs] < v[rhs];
  11. });
  12. return indices;
  13. }
  14.  
  15. int main() {
  16. std::vector<int> arr = {3, 2, 6, 4};
  17.  
  18. auto indices = compute_ordered_indices(arr);
  19. for (auto index : indices) {
  20. std::cout << (1 + index) << " ";
  21. }
  22. }
Success #stdin #stdout 0s 3232KB
stdin
Standard input is empty
stdout
2 1 4 3