问题标签 [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.
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,
c++ - 传递 boost 离散间隔作为这个参数丢弃限定符 [-fpermissive]
在以下代码中:
我收到以下错误:
根据我的研究,这通常是因为我在谓词中调用了非 const 方法,但事实并非如此:upper 和 lower 都被声明为 const for in boost distinct_interval.hpp。那么,这里发生了什么?
c++11 - 将 boost::icl::interval_map 与 std::shared_ptr 一起使用
我想使用共享指针boost::icl::interval_map
,类似于以下内容:
std::shared_ptr
实际上指向一个std::string
必须通过指针引用的抽象类(不是示例中的)(因此存在问题)。
下面是上面代码段产生的一些编译器错误。看起来模板推导失败了,但我不清楚编译器应该使用哪些重载。任何更熟悉 ICL(或阅读这些错误)的人都可以用英语解释发生了什么吗?
c++ - split_interval_map 使用,高效查找所有区间与一个点相交
- 我得到的是加起来的索引。但我正在寻找
int
包含“探针”的区间的所有值(s)。(路口?) - 我可以用价值来实现这一点
std::set<int>
,但在文档中指出,这对性能有巨大影响。似乎 split_interval_map 包含该信息,但我不知道如何检索它。 - 我只需要像本例中那样的高效查找。我不再需要相交的区间范围。boost icl 对这个来说太重了吗?
c++ - 是什么让 Boost `interval_map` 忽略插入?
下面的代码应该在 Boost 区间图中插入两个具有关联值 0 和 1 的区间,但它只插入了一个:
输出:
如果我将“忽略”行的值更改为 1,它将正确插入该对。
这是为什么?
c++ - Boost `interval_map` - 如何自定义触摸聚合
在将它们添加到集合期间, Boost ICLinterval_set
可以加入相互接触的右开区间。例如,interval和将被加入成为一个 interval 。[0,4)
[4,8)
[0,8)
这对于interval_map
- 间隔更复杂,它们相互接触并具有不同的关联值,不会被连接:
该测试程序的输出如下:
我知道如何自定义重叠聚合的过程,但是我需要自定义另一种情况 -触摸聚合。例如,如果区间相互接触并且左区间的值等于右区间的值减去 1,则区间必须连接,并且生成的区间必须具有左区间的值。所以,上面的程序应该打印:
是否可以使用当前可用的 Boost ICL 做到这一点?
我可以对 使用奇怪的操作来做我想做的事interval_map
,但我认为这会很麻烦而且效率不高。我更愿意指出正确的方向来使用当前可用的 ICL 自定义、仿函数等。
c++ - 在 interval_map 的 codomain 中选择
在我当前的项目流程中,可区分的间隔需要组合,如果它们是相邻的。
为此,我想使用奇妙的boost::icl
图书馆。每个进程都可以通过其 id 唯一标识。
首先,我在我的interval_map
. 现在我想完成两件事:
- 遍历所有出现的进程类型(这里 id=1,4,7)
- 其次,迭代属于某个类型子集的所有进程,从而自动完成重叠间隔的合并。
这是我到目前为止得到的:
c++ - boost interval_set 或 interval_map 可以创建具有集群成员计数的集群吗?
例如,如果我有 5 个输入间隔
结果应指示两个集群。集群 1
但我发现 boost::icl::interval 映射不会聚合集群,而是在边界上分裂。
例如下面的测试用例没有给我我希望的结果
我理解为什么这是设计使然。但是,我可以使用不同的公式或库来实现我的要求吗?
我想我要寻找的是对 boost::icl::interval_set 发生的合并次数的计数。当一个新的间隔被添加到容器中时,它要么插入一个新的唯一间隔,要么与以前的间隔合并。但是我不认为合并发生的次数被保留。
c++ - boost::icl::interval 和 boost::numeric::interval 是否有可用的适配层?
我一直在我的代码中到处使用boost::numeric::interval 。现在我已经开始使用boost interval 容器库了。是否存在适配标头,因此我可以将 boost::numeric::interval 间隔放入 boost::icl 容器中?
我已经按照 boost::icl 的定制文档中的建议尝试了以下代码,但它没有与多行模板专业化失败消息一起编译。如果您想查看错误消息,可以在以下位置尝试实时代码
https://wandbox.org/permlink/P8VzcdbjQQzf43yU
我写的代码也在下面。
适配代码
测试代码
c++ - 如何从给定键的 interval_maps 中获取值?
我正在使用boost::icl::interval_maps
int interval
s,我想知道如何获取属于某个间隔的 int (key) 的值?
例如,如果我们有一个具有以下结构的区间图
我使用4
我想获得的密钥["A1", "A2"]
。我在 boost 文档中看到的所有示例都遍历了整个结构。