元素数量严格小于给定数量

时间:2019-01-27 16:48:45

标签: c++ data-structures stl

我想要一个数据结构,我想在其中以log(n)的时间插入元素,并且每次插入后都应在ds中对元素进行排序。我可以为此使用多集。

此后,我想在log(n)时间内再次找到严格小于给定数量的元素数量。是的,也存在重复项,需要加以考虑。例如,如果查询元素为5,并且ds包含{2,2,4,5,6,6,8,8},则答案将为3(2,2,4),因为这3个元素严格小于5

我本可以使用多重集,但是即使使用upper_bound,我也必须使用在线性时间内运行的距离方法。我如何使用c ++ stl有效地实现这一目标。我也不能使用

1 个答案:

答案 0 :(得分:3)

您需要的数据结构是订单统计树:https://en.wikipedia.org/wiki/Order_statistic_tree

STL没有一个,而且不是很常见,因此您可能必须自己动手。您可以在Google中找到代码,但是我不能担保任何特定的实现。