使用C++,希望是标准库,我想按升序对一系列样本进行排序,但我还想记住新样本的原始索引.
例如,我有一个集合,矢量或样本矩阵A : [5, 2, 1, 4, 3].我想对这些进行排序 B : [1,2,3,4,5],但我也想记住值的原始索引,所以我可以得到另一个集合:
C : [2, 1, 4, 3, 0 ]- 它对应于'B'中每个元素的索引,在原始'一个'.
例如,在Matlab中你可以这样做:
[a,b]=sort([5, 8, 7])
a = 5 7 8
b = 1 3 2
Run Code Online (Sandbox Code Playgroud)
任何人都可以看到这样做的好方法吗?
你有一些有效的例程来返回数组中带有索引的数组吗?我认为使用stl向量存在一些方便的方法.你是否已经实现了一个没有stl的高效算法,或者你有一个伪代码或C++代码的参考?
感谢致敬
我是 Rcpp 的新手。我需要A按照另一个向量的顺序重新排列一个向量B;例如,
A=c(0.5,0.4,0.2,0.9)
B=c(9,1,3,5)
Run Code Online (Sandbox Code Playgroud)
我想C=c(0.4,0.2,0.9,0.5)通过 Rcpp 制作。
我知道简单的 r 代码,C=A[order(B)]但是我有必要使用 Rcpp 代码。
我找到了如何B通过 using找到 的顺序sort_index,但我未能A就 的顺序进行安排B。
我怎样才能做到?