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.