fork download
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <iterator>
  4. #include <utility>
  5. #include <vector>
  6.  
  7. using namespace std;
  8.  
  9. vector<size_t> rankSort(const vector<float>& v_temp) {
  10. vector<pair<float, size_t> > v_sort(v_temp.size());
  11.  
  12. for (size_t i = 0U; i < v_sort.size(); ++i) {
  13. v_sort[i] = make_pair(v_temp[i], i);
  14. }
  15.  
  16. sort(v_sort.begin(), v_sort.end());
  17.  
  18. vector<size_t> result(v_temp.size());
  19.  
  20. for (size_t i = 0U; i != result.size(); ++i) {
  21. result[i] = v_sort[i].second;
  22. }
  23. return result;
  24. }
  25.  
  26. int main() {
  27. const float v_temp[] = { 10.0F, 332.0F, 42.0F, 0.9F, 0.0F, 42.0F };
  28. const vector<size_t> v_sort = rankSort(vector<float>(v_temp, v_temp + sizeof(v_temp) / sizeof(*v_temp)));
  29.  
  30. copy(v_sort.begin(), v_sort.end(), ostream_iterator<size_t>(cout, " "));
  31. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
4 3 0 2 5 1