vector<int> data = {3, 1, 5, 3, 3, 8, 7, 3, 2};
std::nth_element(data.begin(), data.begin() + median, data.end());
請問這個總是導致:使用std :: nth_element時,第n個元素的副本是否總是連續的?
data = {less, less, 3, 3, 3, 3, larger, larger, larger} ?
或者將一個其他可能的結果是:
data = {3, less, less, 3, 3, 3, larger, larger, larger} ?
我已經多次試圖在我的機器至極導致第n值始終連續。但這不是證明;)。
什麼它是:
我想建立一個獨特的Kdtree,但我有我的矢量重複。目前我正在使用nth_element來查找中值。問題是選擇一個獨特的/可重構的中位數,而不必再次遍歷向量。如果中間值是連續的,我可以選擇一個獨特的中位數,沒有太多的遍歷。
[文檔](http://en.cppreference.com/w/cpp/algorithm/nth_element)的哪一部分不清楚? –