【发布时间】:2016-01-20 20:21:39
【问题描述】:
boost::icl::interval_set<uint> test_set;
test_set.insert(boost::icl::discrete_interval<uint>::closed(10u, 20u));
test_set.insert(boost::icl::discrete_interval<uint>::closed(21u, 30u)); //should merge to single interval
test_set.insert(boost::icl::discrete_interval<uint>::closed(15u, 25u)); //should not change
test_set.erase(boost::icl::discrete_interval<uint>::closed(12u, 18u)); //should split in two intervals
uint i1min = test_set.begin()->lower();
uint i1max = test_set.begin()->upper();
uint i2min = (++test_set.begin())->lower();
uint i2max = (++test_set.begin())->upper();
std::cout<<i1min<<"\n";
std::cout<<i1max<<"\n";
std::cout<<i2min<<"\n";
std::cout<<i2max<<"\n";
由于我添加和减去闭合区间,我希望得到以下输出:
10
11
19
30
但我得到了:
10
12
18
30
为什么我要删除的时间间隔的端点仍然存在?这是减去闭合间隔的预期行为还是我做错了什么?
【问题讨论】: