我需要保留一个范围在0到65535之间的整数的集合,以便可以快速执行以下操作:
- 插入一个新的整数
- 插入一系列连续的整数
- 删除整数
- 删除整数以下的所有整数
- 测试是否存在整数
我的数据具有以下特性:它通常在集合中包含整数整数。例如,集合在某个时间点可能是:
{ 121, 122, 123, 124, 3201, 3202, 5897, 8912, 8913, 8914, 18823, 18824, 40891 }
最简单的方法就是使用像C ++ std :: set这样的平衡二叉树,但是,使用它,我没有利用我经常会有大量数字的事实。也许最好存储一系列范围?但这意味着,如果要删除范围中间的整数,则需要将其分解;如果要填充两个范围之间的空格,则必须将其合并在一起。
是否存在任何适合此问题的现有数据结构?