问题标签 [boost-icl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
289 浏览

c++11 - 我应该使用哪个 boost 库来添加描述中提到的间隔?

我正在处理 C++ 程序中的间隔。我想要下面的东西:

我想在 for 循环中迭代地添加间隔。假设我的第一个区间是 (0, 5)。我想添加一个区间 (3,6),使得生成的区间集应该是 (0,3), (3,6)。如果我添加的第三个区间是 (4,7),那么我的结果区间集应该是 (0,3)、(3,4)、(4,7)。

知道我应该从 boost 库中使用哪种类型的间隔容器吗?任何示例程序?

这是我尝试过的......

但我得到以下输出:添加第一个间隔-----(1,2.5):A1,

添加第二个区间----- (1,1.5]: A1, (1.5,2.5): A1B1, [2.5,5): B1,

0 投票
1 回答
74 浏览

c++ - 传递 boost 离散间隔作为这个参数丢弃限定符 [-fpermissive]

在以下代码中:

我收到以下错误:

根据我的研究,这通常是因为我在谓词中调用了非 const 方法,但事实并非如此:upper 和 lower 都被声明为 const for in boost distinct_interval.hpp。那么,这里发生了什么?

0 投票
1 回答
205 浏览

c++11 - 将 boost::icl::interval_map 与 std::shared_ptr 一起使用

我想使用共享指针boost::icl::interval_map,类似于以下内容:

std::shared_ptr实际上指向一个std::string必须通过指针引用的抽象类(不是示例中的)(因此存在问题)。

下面是上面代码段产生的一些编译器错误。看起来模板推导失败了,但我不清楚编译器应该使用哪些重载。任何更熟悉 ICL(或阅读这些错误)的人都可以用英语解释发生了什么吗?

0 投票
1 回答
339 浏览

c++ - split_interval_map 使用,高效查找所有区间与一个点相交

  1. 我得到的是加起来的索引。但我正在寻找int包含“探针”的区间的所有值(s)。(路口?)
  2. 我可以用价值来实现这一点std::set<int>,但在文档中指出,这对性能有巨大影响。似乎 split_interval_map 包含该信息,但我不知道如何检索它。
  3. 我只需要像本例中那样的高效查找。我不再需要相交的区间范围。boost icl 对这个来说太重了吗?
0 投票
1 回答
208 浏览

c++ - 是什么让 Boost `interval_map` 忽略插入?

下面的代码应该在 Boost 区间图中插入两个具有关联值 0 和 1 的区间,但它只插入了一个:

输出:

如果我将“忽略”行的值更改为 1,它将正确插入该对。

这是为什么?

0 投票
1 回答
270 浏览

c++ - Boost `interval_map` - 如何自定义触摸聚合

在将它们添加到集合期间, Boost ICLinterval_set可以加入相互接触的右开区间。例如,interval和将被加入成为一个 interval 。[0,4)[4,8)[0,8)

这对于interval_map- 间隔更复杂,它们相互接触并具有不同的关联值,不会被连接:

该测试程序的输出如下:

我知道如何自定义重叠聚合的过程,但是我需要自定义另一种情况 -触摸聚合。例如,如果区间相互接触并且左区间的值等于右区间的值减去 1,则区间必须连接,并且生成的区间必须具有左区间的值。所以,上面的程序应该打印:

是否可以使用当前可用的 Boost ICL 做到这一点?

我可以对 使用奇怪的操作来做我想做的事interval_map,但我认为这会很麻烦而且效率不高。我更愿意指出正确的方向来使用当前可用的 ICL 自定义、仿函数等。

0 投票
1 回答
112 浏览

c++ - 在 interval_map 的 codomain 中选择

在我当前的项目流程中,可区分的间隔需要组合,如果它们是相邻的。

为此,我想使用奇妙的boost::icl图书馆。每个进程都可以通过其 id 唯一标识。

首先,我在我的interval_map. 现在我想完成两件事:

  • 遍历所有出现的进程类型(这里 id=1,4,7)
  • 其次,迭代属于某个类型子集的所有进程,从而自动完成重叠间隔的合并。

这是我到目前为止得到的:

0 投票
0 回答
73 浏览

c++ - boost interval_set 或 interval_map 可以创建具有集群成员计数的集群吗?

例如,如果我有 5 个输入间隔

结果应指示两个集群。集群 1

但我发现 boost::icl::interval 映射不会聚合集群,而是在边界上分裂。

例如下面的测试用例没有给我我希望的结果

我理解为什么这是设计使然。但是,我可以使用不同的公式或库来实现我的要求吗?

我想我要寻找的是对 boost::icl::interval_set 发生的合并次数的计数。当一个新的间隔被添加到容器中时,它要么插入一个新的唯一间隔,要么与以前的间隔合并。但是我不认为合并发生的次数被保留。

0 投票
1 回答
131 浏览

c++ - boost::icl::interval 和 boost::numeric::interval 是否有可用的适配层?

我一直在我的代码中到处使用boost::numeric::interval 。现在我已经开始使用boost interval 容器库了。是否存在适配标头,因此我可以将 boost::numeric::interval 间隔放入 boost::icl 容器中?

我已经按照 boost::icl 的定制文档中的建议尝试了以下代码,但它没有与多行模板专业化失败消息一起编译。如果您想查看错误消息,可以在以下位置尝试实时代码

https://wandbox.org/permlink/P8VzcdbjQQzf43yU

我写的代码也在下面。

适配代码

测试代码

0 投票
1 回答
66 浏览

c++ - 如何从给定键的 interval_maps 中获取值?

我正在使用boost::icl::interval_mapsint intervals,我想知道如何获取属于某个间隔的 int (key) 的值?

例如,如果我们有一个具有以下结构的区间图

我使用4我想获得的密钥["A1", "A2"]。我在 boost 文档中看到的所有示例都遍历了整个结构。