回答
std::partial_sort
如果你需要它們,否則std::nth_element
,使用greater
作爲你的謂詞。
我不能說是否通過提取你的意思是你想要刪除,但如果你這樣做,然後另一個選項是使用make_heap
heapting你的容器,然後從其中排除N
元素。
方面的問題是:'partial_sort(it,it + K,it + N)'總是比combo'nth_element(it,it + K,it + N)便宜',後面跟'sort(it + it)足夠大的'K
@rhalbersma:第二個變體應該有漸進時間複雜度「O(K * log K + N)」,它漸近地小於第一個變量的「O(N log K)」。如果它(不)總是便宜,我不能說。簡介。 – jpalecek
要獲得n
最小的元素,使用nth_element
:
std::vector<int> v = { 2, 6, 1, 13, 51, 5, 0, -1 };
std::nth_element(v.begin(), v.begin() + 3, v.end());
// now v[0], v[1], v[2] are the smallest, not otherwise sorted
確保#include <algorithm>
。可以提供一個可選謂詞來定製排序順序(例如std::greater<int>
)。
- 1. 從CountVectorizer中按類提取n個最高頻率
- 2. C++查找地圖的第N個最高元素
- 3. 從R中n對中提取k個獨特元素的最快方法
- 4. 組中N個最高/最低元素的平均數
- 5. 從集合中取出n個元素
- 6. 從smarty中獲取數組中的最後N個元素
- 7. 從C++中的容器元組中提取value_type的元組11
- 8. 從列表中提取第n個元素
- 9. 獲取每個父元素的最高子元素的高度
- 10. 如何使用CUDA從M個元素中獲取N個最大元素,其中N << M?
- 11. 取n個元素,除了從字典
- 12. 如何從python中的元組列表中提取第n個元素?
- 13. 如何從div容器中提取某些<a>元素?
- 14. 的Python:用最大值/最小值的第n個元素的元組提取從元組
- 15. 從DOM元素集合中獲取最高高度值
- 16. 一個mysqli的查詢結果中提取第n個元素
- 17. 從2個向量中提取元素?
- 18. 從XMLHttpRequest中提取單個元素
- 19. 在C++中旋轉數組中的最後n個元素
- 20. C++:從容器中移除元素並將其取回
- 21. 如何從對象列表中提取K個「最小」元素?
- 22. 獲取Python中列表中最小N個元素的索引
- 23. C++ STL關聯容器:從元素獲取迭代器?
- 24. 推力::序列 - 如何提高每個N元素後一步
- 25. 獲得屬性最高的n個元素
- 26. 如何擦除C++映射中的最後n個元素?
- 27. 在jQuery中素數最高爲n
- 28. 獲取最外層div元素(最高父元素)的HTML
- 29. 從一組n個元素中取出k個元素的產品總和
- 30. 如何從R中的向量中取出最後n個元素?
考慮維護一個排序的包含,如果它頻繁。 – andre