c++ - 是否有用于存储离散间隔的集合?

标签 c++ algorithm stl

我需要将离散范围存储在一个集合中,并在插入时连接相邻范围。 STL中是否有结构已经具有这样的功能?

我已经尝试过 boost::intervals,但它很重,而且对于我正在尝试做的事情来说有点矫枉过正。

例如,假设集合为空并插入了以下元素:

[64, 96]
[0, 4]
[11, 15]
[5, 10]

区间集合的预期内容应该如下:

[0, 15]
[64, 96]

最佳答案

这是一个众所周知的问题。有一个 wikipedia page关于您问题的可能解决方案。当然,在 C++ STL 中,您可以使用 std::map 实现基于 Naive 方法的解决方案,在维基百科中有解释,因为映射是红黑树,是一种二进制搜索树。

关于c++ - 是否有用于存储离散间隔的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55646605/

相关文章:

python - 在 macOS Big Sur : `Symbol not found: ___addtf3` 上,在 python 中加载 dylib 失败

c++ - 将指向自定义对象的指针 vector 存储到文件中

android - java.lang.NoSuchFieldError : no "Ljava/lang/String;" field JNI 错误

algorithm - 如何优化 Bgp Anycast AS 路径长度

c++ - 包含自身实例化的模板,C++ 中的递归

algorithm - 如何生成二维凹多边形的 "inner shape"?

c++ - 如何在 C++ 中对包含自定义对象的容器使用分区函数

c++ - 变量作为 C++ 模板的参数

c++ - 使用智能指针作为 Qt 标准函数的参数

algorithm - 装箱任务修改版的最优解