间隔树使用C ++ STL <map>或<set> </set> </map>

时间:2013-08-05 10:30:43

标签: algorithm stl tree intervals red-black-tree

我需要一个可以在log(n)中执行以下三个查询的数据结构,其中n是数字范围。

  • insert(a,b):插入间隔[a,b]。
  • count(x):计算包含点x的间隔数。
  • 删除(a,b):从间隔集中删除间隔[a,b]。

我遇到了间隔树,它在C ++中的实现需要使用红黑树。 我试图避免从头开始创建树,有没有办法实现c ++ stl,如<map><set>来执行这些操作?

EDIT 我意识到,由于我需要的是包含点的间隔的计数,我使用了二进制索引树,它的实现很简单,并在O(log(n))时间内执行上述查询。

0 个答案:

没有答案