【发布时间】:2014-11-13 07:51:48
【问题描述】:
变量x 是n 整数的向量,我想按升序对向量进行排序。但是,由于此问题范围之外的原因,我希望保持不变。因此,我不想实际对x 的内容进行排序,而是想创建另一个n 索引向量,其中每个索引引用x 中的相应值,如果要对x 进行排序。
例如:
std::vector<int> x = {15, 3, 0, 20};
std::vector<int> y;
// Put the sorted indices of x into the vector y
for (int i = 0; i < 4; i++)
{
std::cout << y[i];
}
应该给出输出:
2
1
0
3
对应x中的值:
0
3
15
20
我可以想到很多及时的方法来实现这个,但我想知道 STL 是否有内置的东西可以为我有效地执行这个?
【问题讨论】:
-
我认为您可以通过提供自己的 Comparator 来使用
std:sort,该 Comparator 可以取消引用到目标std::vector..