디지털 숫자 배열의 중앙값을 계산하는 방법은 이전에 논의되었습니다. 예를 들어, What is the right approach when using STL container for median calculation?을 참조 할 수 있습니다. 이제는 다른 질문이 있습니다. 원래 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) : 내 질문을 설명하기 위해, 나는 예를 제공합니다. 어떤 아이디어? 감사!
왜 중앙값이 벡터의 요소 중 하나라고 가정합니까? –
'nth_element'는 올바르게 사용된다면 중간 값에 대한 반복자를 제공합니다 (홀수 길이의 배열을 가정 할 때). iterator와'std :: distance'를 사용하면 원하는 것을 얻을 수 있습니다. 아래 내 대답을 참조하십시오. – juanchopanza
@EitanT 여기에서는 요소 수가 홀수 인 예제를 제공합니다. 요소의 수가 짝수 인 경우까지 확장됩니다. – feelfree