- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
下面的代码应该将关联值为 0 和 1 的两个区间插入到 Boost 区间图中,但它只插入了一个:
#include <iostream>
#include <boost/icl/interval_map.hpp>
using Interval = boost::icl::interval<int>;
using IMap = boost::icl::interval_map<int, int>;
int main()
{
IMap m;
m += std::make_pair(Interval::right_open(0, 7), 0); // <== ignored?
m += std::make_pair(Interval::right_open(8,15), 1);
std::cout << m << std::endl;
}
输出:
{([8,15)->1)}
如果我将“忽略”行的值更改为 1,它将正确插入该对。
这是为什么?
最佳答案
任何“无值”的域间隔在共同域中都有一个隐含的“0”。反之亦然。我想下面的示例会立即有意义:
m += std::make_pair(Interval::right_open(8,15), 1);
m -= std::make_pair(Interval::right_open(8,15), 1);
生成一个空 map 。
参见 Map Traits .
Icl maps differ in their behavior dependent on how they handle identity elements of the associated type CodomainT.
具体在Definedness and Storage of Identity Elements下
The second trait is related to the representation of identity elements in the map. An icl map can be a identity absorber or a identity enricher.
- A identity absorber never stores value pairs (k,0) that carry identity elements.
- A identity enricher stores value pairs (k,0).
关于c++ - 是什么让 Boost `interval_map` 忽略插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50822545/
Boost ICL interval_set 可以加入 right-open 间隔,这些间隔在将它们添加到集合时相互接触。例如,区间 [0,4) 和 [4,8) 将合并成为区间 [0,8)。 这对于
在我目前的项目processes中,可区分的区间,需要合并,如果它们是相邻的。 为此,我想使用出色的 boost::icl 库。每个进程都可以通过它的 id 来唯一标识。 首先,我在我的 interv
我将 boost::icl::interval_maps 与 int interval 一起使用,我想知道如何获取属于一些间隔? 例如,如果我们有一个具有以下结构的区间图 [0, 5): ["A1",
我已经开始使用 boost:icl 库,它非常全面且方便。我主要使用来自 boost 的两种类型的间隔,boost::icl::interval_set 和 boost::icl::interval_
回答问题:Previous Answer: rectangle overlap 我正在使用 interval_map 如下:我有一组由 R = [int start, int end, (int To
我可以通过遍历区间来确定 interval_map 中有多少个区间,但是是否有更直接的方法来获取区间图中的区间数? boost::icl::interval_map 的 size() 方法似乎没有返回
尝试遵循 interval_map 的 boost_party 示例,我制作了这个示例代码: #include "boost/icl/interval.hpp" #include "boost/icl
我很难理解 interval_map 和 split_interval_map,我都实现了,结果是一样的。下面是分割区间图的代码。 #include #include #include usin
我想做的是有效地处理间隔。例如,在我的示例中,间隔如下所示: [10, 20], [15, 25], [40, 100], [5, 14] 区间是封闭的整数,有些区间可能重叠。我想高效 为给定查询找到
下面的代码应该将关联值为 0 和 1 的两个区间插入到 Boost 区间图中,但它只插入了一个: #include #include using Interval = boost::icl::in
我正在尝试使用 boost::icl::interval_map具有自定义间隔 MyInterval和封闭边界( interval_bounds::static_closed ),类似于 interv
是否有一种内置方法来获取 boost::icl::interval_map 中的间隔数?我在文档中找不到它。 size() 方法似乎有不同的用途。 最佳答案 interval_count 不起作用?
interval_map (in icl) 库是否支持删除?我可以根据迭代器查找范围并删除范围吗? ============ 来自 boost 示例的 party.cpp ==============
是否可以制作interval_map具有以下累积行为: [1..3]->1 + [2..4]->2 + [5..7]->3 + [6..8]->4 = [1..4]->{1,2}, [5..8]->{
我正在使用 boost::icl::interval_map 将字节范围映射到一组字符串。该 map 是从(排序的)磁盘文件加载的,然后我使用下面的代码进行查找。 问题是查找真的很慢。 在我的测试中,
我正在使用 BOOST 库中的 interval_map。 typedef set Tpopulations; interval_map populations; 假设我在人群中有这个 [100
我是一名优秀的程序员,十分优秀!