vector<int> data = {3, 1, 5, 3, 3, 8, 7, 3, 2};
std::nth_element(data.begin(), data.begin() + median, data.end());
Будет ли это всегда приводит к:Являются ли дубликаты n-го элемента всегда смежными при использовании std :: nth_element?
data = {less, less, 3, 3, 3, 3, larger, larger, larger} ?
Или будет другой возможный результат:
data = {3, less, less, 3, 3, 3, larger, larger, larger} ?
Я пробовал несколько раз на моей машине Wich привели к п-го значений всегда будучи смежным. Но это не доказательство;).
Что это за:
Я хочу строить уникальный Kdtree, но у меня есть дубликаты в моем векторе. В настоящее время я использую nth_element, чтобы найти медианное значение. Проблема заключается в том, чтобы выбрать уникальную/восстановимую медианную, без необходимости повторять вектор. Если медианные значения были смежными, я мог бы выбрать уникальную медианную, без особых перемещений.
Какая часть [документации] (http://en.cppreference.com/w/cpp/algorithm/nth_element) неясна? –