C++ 如何在使用C++;增压间隔容器库(ICL)?

C++ 如何在使用C++;增压间隔容器库(ICL)?,c++,boost,intervals,boost-icl,C++,Boost,Intervals,Boost Icl,如何使用Boost interval容器库转换离散_间隔 i、 我想从区间的下限()和上限()中减去整数c?显然,我可以创建一个新的间隔,但我正在寻找实现这一点的规范方法。规范方法是构造一个新的间隔并将其分配给您的间隔,因为它是不可变的(除了赋值运算符)。因此,要移动一个区间,您必须创建一个具有所需上下限的新区间,并将其指定给旧区间 boost::icl::discrete_interval<int> interval; interval = boost::icl::discrete

如何使用Boost interval容器库转换离散_间隔


i、 我想从区间的下限()和上限()中减去整数c?显然,我可以创建一个新的间隔,但我正在寻找实现这一点的规范方法。

规范方法是构造一个新的间隔并将其分配给您的间隔,因为它是不可变的(除了赋值运算符)。因此,要移动一个区间,您必须创建一个具有所需上下限的新区间,并将其指定给旧区间

boost::icl::discrete_interval<int> interval;
interval = boost::icl::discrete_interval<int>::closed(3, 4);
boost::icl::离散_间隔;
间隔=升压::icl::离散_间隔::闭合(3,4);

好吧,至少我不会再花时间去寻找解决方案了。即使间隔是不可变的,为什么不使用一个函数,该函数接受一个间隔和一个类型为T(在您的例子中为int)的常量,并返回一个新的间隔,同时将该间隔移位?这并不难写,但在API中使用类似的东西似乎是有意义的。