Disjoint Interval Set API Reference¶
Complete API documentation for the disjoint_interval_set<I>
class template.
Class Template¶
Template Parameters¶
- I: The interval type. Typically
interval<T>
.
Common Type Aliases¶
namespace dis {
using real_set = disjoint_interval_set<real_interval>;
using integer_set = disjoint_interval_set<integer_interval>;
}
Constructors¶
Default Constructor¶
From Interval¶
From Initializer List¶
From Range¶
Named Constructors¶
empty()
¶
from_string(std::string_view str)
¶
Parses mathematical notation like "[0,5) ∪ (10,20]"
. Core Operations¶
Queries¶
is_empty()
¶
size()
¶
Returns number of disjoint intervals. contains(value_type value)
¶
Tests membership. O(log n) via binary search. overlaps(const disjoint_interval_set& other)
¶
Set Operations¶
All operations return a new set (value semantics).
Union¶
disjoint_interval_set unite(const disjoint_interval_set& other) const;
friend disjoint_interval_set operator|(const disjoint_interval_set& a,
const disjoint_interval_set& b);
Intersection¶
disjoint_interval_set intersect(const disjoint_interval_set& other) const;
friend disjoint_interval_set operator&(const disjoint_interval_set& a,
const disjoint_interval_set& b);
Complement¶
disjoint_interval_set complement() const;
friend disjoint_interval_set operator~(const disjoint_interval_set& a);
Difference¶
disjoint_interval_set difference(const disjoint_interval_set& other) const;
friend disjoint_interval_set operator-(const disjoint_interval_set& a,
const disjoint_interval_set& b);
Symmetric Difference¶
disjoint_interval_set symmetric_difference(const disjoint_interval_set& other) const;
friend disjoint_interval_set operator^(const disjoint_interval_set& a,
const disjoint_interval_set& b);
Fluent Interface¶
add(I interval)
/ add(T lower, T upper)
¶
disjoint_interval_set& add(I interval) &;
disjoint_interval_set&& add(I interval) &&;
disjoint_interval_set& add(value_type lower, value_type upper) &;
remove(I interval)
/ erase(I interval)
¶
Analysis Operations¶
span()
¶
Returns smallest interval containing all intervals. gaps()
¶
Returns intervals between components. measure()
¶
Returns total length. density()
¶
Returns measure() / span().length()
. Functional Operations¶
filter(Predicate pred)
¶
for_each(Function fn)
¶
Iteration¶
Use in range-based for loops:
Complete Example¶
See Examples for comprehensive usage examples.