Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从boost::icl::interval_集合中删除离散闭合区间_C++_Boost_Intervals - Fatal编程技术网

C++ 从boost::icl::interval_集合中删除离散闭合区间

C++ 从boost::icl::interval_集合中删除离散闭合区间,c++,boost,intervals,C++,Boost,Intervals,但我得到的却是: 10 11 19 30 为什么要删除的间隔的端点仍然保留?这是减去闭合区间的预期行为,还是我做错了什么?从一个闭合区间减去另一个闭合区间,在您的情况下会导致两个半开放区间。如果你仔细想想,它也与连续间隔的行为一致 您可以使用以下代码对此进行测试: 10 12 18 30 哦,我明白了,这是有道理的!在这种情况下,有没有办法得到离散区间中仍然是区间一部分的最高元素? 10 12 18 30 std::cout << test_set.begin()->b

但我得到的却是:

10
11
19
30

为什么要删除的间隔的端点仍然保留?这是减去闭合区间的预期行为,还是我做错了什么?

从一个闭合区间减去另一个闭合区间,在您的情况下会导致两个半开放区间。如果你仔细想想,它也与连续间隔的行为一致

您可以使用以下代码对此进行测试:

10
12
18
30

哦,我明白了,这是有道理的!在这种情况下,有没有办法得到离散区间中仍然是区间一部分的最高元素?
10
12
18
30
 std::cout << test_set.begin()->bounds() << "\n";
 std::cout << (++test_set.begin())->bounds() << "\n";
uint i1min = boost::icl::first(*test_set.begin());
uint i1max = boost::icl::last(*test_set.begin());
uint i2min = boost::icl::first(*(++test_set.begin()));
uint i2max = boost::icl::last(*(++test_set.begin()));