我已经在其他语言中看到了各种方法来处理这个问题,但它似乎是一个常见的问题,似乎应该有一个标准的方法来做到这一点。在C++中减少双精度范围
我想将浮动范围列表折叠为最小的表示形式。
2.45-3.72 3.16-6.55 7.23-8.96 8.95-10.27
将成为:
2.45-6.55 7.23-10.27
有C中的函数或库++某处我可以给我的名单,它会为我执行减少?我可以很容易地写我自己的,但为什么打扰,如果它已经存在?
我已经在其他语言中看到了各种方法来处理这个问题,但它似乎是一个常见的问题,似乎应该有一个标准的方法来做到这一点。在C++中减少双精度范围
我想将浮动范围列表折叠为最小的表示形式。
2.45-3.72 3.16-6.55 7.23-8.96 8.95-10.27
将成为:
2.45-6.55 7.23-10.27
有C中的函数或库++某处我可以给我的名单,它会为我执行减少?我可以很容易地写我自己的,但为什么打扰,如果它已经存在?
听起来很简单:
这应该有所斩断。
我不认为会有任何标准提供的解决方案,它的方式太具体。
Boost有一个interval library。这并没有明确地包含你所需要的,但是可能使它更容易编写。个人而言,看着文档,它让我担心图书馆不会试图让你清楚地区分封闭和开放的时间间隔。但这对你的目的可能并不重要。
这似乎不是一个很常见的问题(我从来没有遇到过它,至少),这绝对不是你期望在标准库中找到的东西(尽管它可能在第三方库中,我不知道) – 2011-01-10 18:24:06
它不存在,但由于很容易写出你自己的,为什么要问呢? – 2011-01-10 18:24:25
实际解决这个问题的代码会很有趣,尽管它并不那么困难。听起来像一个很好的面试问题。 – Omnifarious 2011-01-10 18:41:05