如何比较2 boost :: icl :: interval_set的相等性

时间:2019-05-20 10:20:18

标签: c++ boost

我想知道是否有一种更快的方法来知道2 boost :: icl :: interval_set是否相等?

我尝试了以下条件以获得更快的结果,但我想它们并不完整: 1.比较它们的大小() 2.比较最低的元素 3.比较最大的元素

暴力法是在元素上进行比较,但是如果有已知的更好的比较方法或某些内置函数,请告诉我

1 个答案:

答案 0 :(得分:0)

有一个名称有些奇怪的内置函数is_element_equal,用于比较两个2 boost::icl::interval_set的相等性。

请注意,根据documentation

  

集合上的相等不能作为运算符==实现,因为运算符==用于在句段上增强词法等式,从而考虑了元素的分割。

split_interval_set<time> w1, w2; //Pseudocode
w1 = {[Mon       ..       Sun)}; //split_interval_set containing a week
w2 = {[Mon .. Fri)[Sat .. Sun)}; //Same week split in work and week end parts.
w1 == w2;                        //false: Different segmentation
is_element_equal(w1,w2);         //true:  Same elements contained