我发现了很多有关如何使用C ++ STL的nth_element
算法的问题和答案,但是到目前为止,我还没有找到任何有趣的用例。特别是,在实际的用例中,我将使用nth_element而不是仅对整个向量进行排序?
编辑:显然,nth_element
可用于查找数据的中位数或其他百分位数,但由于它修改了矢量,因此效率似乎较低。
答案 0 :(得分:3)
您想回答“中位数是多少?”数据集。不需要对其进行排序,您只需要一个条目,其中50%大于50%小于50%。
答案 1 :(得分:3)
一个典型的用例是,由于它太大而不想对整个集合进行排序。如果只需要前n个,则使用nth_element对集合进行分区。然后,第一个分区包含前n个元素。