前面已经讨论过如何计算数字数组的中位数。例如,您可以参考使用 STL 容器进行中位数计算时的正确做法是什么?. 现在我有一个不同的问题,那就是如何在原始 STL 容器中获取中位数的索引。为了说明我的问题,我举一个例子:
vector<int> myarray;
myarray.push_back(3);
myarray.push_back(1);
myarray.push_back(100);
myarray.push_back( 20);
myarray.push_back(200);
int n = myarray.size()/2;
nth_element(myarray.begin(), myarray.begin()+n, myarray.end());
int median = myarray[n];
在上面的代码中,我可以获得中值,但无法在原始向量数组 (4) 中获得它的索引。有任何想法吗?谢谢!