【发布时间】:2020-12-06 14:19:54
【问题描述】:
关注C++ sorting and keeping track of indexes:
这是如何获得vector<int> v的argsort
vector<int> VectorArgSort(vector<int> &v) {
/* Get the indices that gives a sorted vector v*/
vector<int> retIndices(v.size());
iota(retIndices.begin(), retIndices.end(), 0);
stable_sort(
retIndices.begin(), retIndices.end(),
[&v](int i1, int i2) {return v[i1] < v[i2];});
return retIndices;
}
但我想要的是让 vector<int> VectorArgSort(vector<float> &v) 仍然给出向量,因为它们是索引,而是在 vector<float> &v 上执行它。
我尝试将几个已定义的 int 类型更改为双精度类型,但我认为我不应该这样做,因为它们都指向索引。所以我不知道如何改变函数来得到我想要的。
【问题讨论】:
-
请显示错误信息。