implements a set as a set of intervals - on insertion overlapping intervals are split More...
#include <split_interval_set.hpp>


Public Types | |
| enum | { fineness = 3 } |
| typedef split_interval_set < DomainT, Compare, Interval, Alloc > | type |
| typedef interval_base_set < type, DomainT, Compare, Interval, Alloc > | base_type |
| typedef interval_set< DomainT, Compare, Interval, Alloc > | joint_type |
| typedef type | overloadable_type |
| typedef type | key_object_type |
| typedef DomainT | domain_type |
| The domain type of the set. More... | |
| typedef DomainT | codomain_type |
| The codomaintype is the same as domain_type. More... | |
| typedef DomainT | element_type |
| The element type of the set. More... | |
| typedef interval_type | segment_type |
| The segment type of the set. More... | |
| typedef exclusive_less_than < interval_type > | interval_compare |
| Comparison functor for intervals. More... | |
| typedef exclusive_less_than < interval_type > | key_compare |
| Comparison functor for keys. More... | |
| typedef Alloc< interval_type > | allocator_type |
| The allocator type of the set. More... | |
| typedef Alloc< DomainT > | domain_allocator_type |
| allocator type of the corresponding element set More... | |
| typedef base_type::atomized_type | atomized_type |
| The corresponding atomized type representing this interval container of elements. More... | |
| typedef base_type::ImplSetT | ImplSetT |
| Container type for the implementation. More... | |
| typedef ImplSetT::key_type | key_type |
| key type of the implementing container More... | |
| typedef ImplSetT::value_type | data_type |
| data type of the implementing container More... | |
| typedef ImplSetT::value_type | value_type |
| value type of the implementing container More... | |
| typedef ImplSetT::iterator | iterator |
| iterator for iteration over intervals More... | |
| typedef ImplSetT::const_iterator | const_iterator |
| const_iterator for iteration over intervals More... | |
| typedef SubType | sub_type |
| The designated derived or sub_type of this base class. More... | |
| typedef difference_type_of < domain_type >::type | difference_type |
| The difference type of an interval which is sometimes different form the data_type. More... | |
| typedef size_type_of < domain_type >::type | size_type |
| The size type of an interval which is mostly std::size_t. More... | |
| typedef ImplSetT::pointer | pointer |
| pointer type More... | |
| typedef ImplSetT::const_pointer | const_pointer |
| const pointer type More... | |
| typedef ImplSetT::reference | reference |
| reference type More... | |
| typedef ImplSetT::const_reference | const_reference |
| const reference type More... | |
| typedef ImplSetT::reverse_iterator | reverse_iterator |
| iterator for reverse iteration over intervals More... | |
| typedef ImplSetT::const_reverse_iterator | const_reverse_iterator |
| const_iterator for iteration over intervals More... | |
| typedef boost::icl::element_iterator < iterator > | element_iterator |
| element iterator: Depreciated, see documentation. More... | |
| typedef boost::icl::element_iterator < const_iterator > | element_const_iterator |
| element const iterator: Depreciated, see documentation. More... | |
| typedef boost::icl::element_iterator < reverse_iterator > | element_reverse_iterator |
| element reverse iterator: Depreciated, see documentation. More... | |
| typedef boost::icl::element_iterator < const_reverse_iterator > | element_const_reverse_iterator |
| element const reverse iterator: Depreciated, see documentation. More... | |
Public Member Functions | |
| typedef | ICL_INTERVAL_TYPE (Interval, DomainT, Compare) interval_type |
| The interval type of the set. More... | |
| typedef | ICL_COMPARE_DOMAIN (Compare, DomainT) domain_compare |
| Comparison functor for domain values. More... | |
| split_interval_set () | |
| Default constructor for the empty object. More... | |
| split_interval_set (const split_interval_set &src) | |
| Copy constructor. More... | |
| template<class SubType > | |
| split_interval_set (const interval_base_set< SubType, DomainT, Compare, Interval, Alloc > &src) | |
| Copy constructor for base_type. More... | |
| split_interval_set (const interval_type &elem) | |
| Constructor for a single element. More... | |
| split_interval_set (const domain_type &itv) | |
| Constructor for a single interval. More... | |
| template<class SubType > | |
| void | assign (const interval_base_set< SubType, DomainT, Compare, Interval, Alloc > &src) |
| Assignment from a base interval_set. More... | |
| template<class SubType > | |
| split_interval_set & | operator= (const interval_base_set< SubType, DomainT, Compare, Interval, Alloc > &src) |
| Assignment operator for base type. More... | |
| split_interval_set (split_interval_set &&src) | |
| Move constructor. More... | |
| split_interval_set & | operator= (split_interval_set src) |
| Move assignment operator. More... | |
| typedef | ICL_COMPARE_DOMAIN (Compare, segment_type) segment_compare |
| BOOST_STATIC_CONSTANT (int, fineness=0) | |
| void | swap (interval_base_set &operand) |
| swap the content of containers More... | |
| void | clear () |
| sets the container empty More... | |
| bool | empty () const |
| is the container empty? More... | |
| size_type | size () const |
| An interval set's size is it's cardinality. More... | |
| std::size_t | iterative_size () const |
| Size of the iteration over this container. More... | |
| const_iterator | find (const element_type &key_value) const |
Find the interval, that contains element key_value. More... | |
| const_iterator | find (const interval_type &key_interval) const |
Find the first interval, that collides with interval key_interval. More... | |
| SubType & | add (const element_type &key) |
Add a single element key to the set. More... | |
| SubType & | add (const segment_type &inter_val) |
Add an interval of elements inter_val to the set. More... | |
| iterator | add (iterator prior_, const segment_type &inter_val) |
Add an interval of elements inter_val to the set. More... | |
| SubType & | subtract (const element_type &key) |
Subtract a single element key from the set. More... | |
| SubType & | subtract (const segment_type &inter_val) |
Subtract an interval of elements inter_val from the set. More... | |
| SubType & | insert (const element_type &key) |
Insert an element key into the set. More... | |
| SubType & | insert (const segment_type &inter_val) |
Insert an interval of elements inter_val to the set. More... | |
| iterator | insert (iterator prior_, const segment_type &inter_val) |
Insert an interval of elements inter_val to the set. More... | |
| SubType & | erase (const element_type &key) |
Erase an element key from the set. More... | |
| SubType & | erase (const segment_type &inter_val) |
Erase an interval of elements inter_val from the set. More... | |
| void | erase (iterator position) |
Erase the interval that iterator position points to. More... | |
| void | erase (iterator first, iterator past) |
Erase all intervals in the range [first,past) of iterators. More... | |
| SubType & | flip (const element_type &key) |
If *this set contains key it is erased, otherwise it is added. More... | |
| SubType & | flip (const segment_type &inter_val) |
If *this set contains inter_val it is erased, otherwise it is added. More... | |
| iterator | begin () |
| const_iterator | begin () const |
| iterator | end () |
| const_iterator | end () const |
| reverse_iterator | rbegin () |
| const_reverse_iterator | rbegin () const |
| reverse_iterator | rend () |
| const_reverse_iterator | rend () const |
| iterator | lower_bound (const value_type &interval) |
| const_iterator | lower_bound (const value_type &interval) const |
| iterator | upper_bound (const value_type &interval) |
| const_iterator | upper_bound (const value_type &interval) const |
| std::pair< iterator, iterator > | equal_range (const key_type &interval) |
| std::pair< const_iterator, const_iterator > | equal_range (const key_type &interval) const |
Protected Member Functions | |
| void | add_front (const interval_type &inter_val, iterator &first_) |
| void | add_main (interval_type &inter_val, iterator &it_, const iterator &last_) |
| void | add_segment (const interval_type &inter_val, iterator &it_) |
| void | add_rear (const interval_type &inter_val, iterator &it_) |
| sub_type * | that () |
| const sub_type * | that () const |
Protected Attributes | |
| ImplSetT | _set |
Friends | |
| class | interval_base_set< split_interval_set< DomainT, Compare, Interval, Alloc >, DomainT, Compare, Interval, Alloc > |
implements a set as a set of intervals - on insertion overlapping intervals are split
| typedef Alloc<interval_type> boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::allocator_type |
The allocator type of the set.
| typedef base_type::atomized_type boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::atomized_type |
The corresponding atomized type representing this interval container of elements.
| typedef interval_base_set<type,DomainT,Compare,Interval,Alloc> boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::base_type |
| typedef DomainT boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::codomain_type |
The codomaintype is the same as domain_type.
| typedef ImplSetT::const_iterator boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::const_iterator |
const_iterator for iteration over intervals
|
inherited |
const pointer type
|
inherited |
const reference type
|
inherited |
const_iterator for iteration over intervals
| typedef ImplSetT::value_type boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::data_type |
data type of the implementing container
|
inherited |
The difference type of an interval which is sometimes different form the data_type.
| typedef Alloc<DomainT> boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::domain_allocator_type |
allocator type of the corresponding element set
| typedef DomainT boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::domain_type |
The domain type of the set.
|
inherited |
element const iterator: Depreciated, see documentation.
|
inherited |
element const reverse iterator: Depreciated, see documentation.
|
inherited |
element iterator: Depreciated, see documentation.
|
inherited |
element reverse iterator: Depreciated, see documentation.
| typedef DomainT boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::element_type |
The element type of the set.
| typedef base_type::ImplSetT boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::ImplSetT |
Container type for the implementation.
| typedef exclusive_less_than<interval_type> boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::interval_compare |
Comparison functor for intervals.
| typedef ImplSetT::iterator boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::iterator |
iterator for iteration over intervals
| typedef interval_set<DomainT,Compare,Interval,Alloc> boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::joint_type |
| typedef exclusive_less_than<interval_type> boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::key_compare |
Comparison functor for keys.
| typedef type boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::key_object_type |
| typedef ImplSetT::key_type boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::key_type |
key type of the implementing container
| typedef type boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::overloadable_type |
|
inherited |
pointer type
|
inherited |
reference type
|
inherited |
iterator for reverse iteration over intervals
| typedef interval_type boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::segment_type |
The segment type of the set.
|
inherited |
The size type of an interval which is mostly std::size_t.
|
inherited |
The designated derived or sub_type of this base class.
| typedef split_interval_set<DomainT,Compare,Interval,Alloc> boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::type |
| typedef ImplSetT::value_type boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::value_type |
value type of the implementing container
| anonymous enum |
|
inline |
Default constructor for the empty object.
|
inline |
Copy constructor.
|
inline |
Copy constructor for base_type.
References boost::assign().
|
inlineexplicit |
Constructor for a single element.
References boost::icl::add().
|
inlineexplicit |
Constructor for a single interval.
References boost::icl::add().
|
inline |
Move constructor.
|
inlineinherited |
Add a single element key to the set.
|
inlineinherited |
Add an interval of elements inter_val to the set.
|
inlineinherited |
Add an interval of elements inter_val to the set.
Iterator prior_ is a hint to the position inter_val can be inserted after.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
References boost::icl::left_subtract().
|
inlineprotectedinherited |
|
inlineprotectedinherited |
References boost::icl::is_empty(), boost::prior(), and boost::icl::right_subtract().
|
inline |
|
inlineinherited |
|
inlineinherited |
|
inherited |
|
inlineinherited |
sets the container empty
|
inlineinherited |
is the container empty?
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Erase an element key from the set.
|
inlineinherited |
Erase an interval of elements inter_val from the set.
|
inlineinherited |
Erase the interval that iterator position points to.
|
inlineinherited |
Erase all intervals in the range [first,past) of iterators.
|
inlineinherited |
Find the interval, that contains element key_value.
|
inlineinherited |
Find the first interval, that collides with interval key_interval.
|
inlineinherited |
If *this set contains key it is erased, otherwise it is added.
|
inlineinherited |
If *this set contains inter_val it is erased, otherwise it is added.
| typedef boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::ICL_COMPARE_DOMAIN | ( | Compare | , |
| DomainT | |||
| ) |
Comparison functor for domain values.
|
inherited |
| typedef boost::icl::split_interval_set< DomainT, Compare, Interval, Alloc >::ICL_INTERVAL_TYPE | ( | Interval | , |
| DomainT | , | ||
| Compare | |||
| ) |
The interval type of the set.
|
inlineinherited |
Insert an element key into the set.
|
inlineinherited |
Insert an interval of elements inter_val to the set.
|
inlineinherited |
Insert an interval of elements inter_val to the set.
Iterator prior_ is a hint to the position inter_val can be inserted after.
|
inlineinherited |
Size of the iteration over this container.
|
inlineinherited |
|
inlineinherited |
|
inline |
Assignment operator for base type.
References boost::assign().
|
inline |
Move assignment operator.
References boost::move(), and boost::multiprecision::backends::operator=().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
An interval set's size is it's cardinality.
|
inlineinherited |
Subtract a single element key from the set.
|
inlineinherited |
Subtract an interval of elements inter_val from the set.
References boost::msm::front::euml::end_, boost::graph_detail::equal_range(), boost::msm::front::euml::first_, boost::icl::is_empty(), boost::icl::left_subtract(), boost::prior(), and boost::icl::right_subtract().
|
inlineinherited |
swap the content of containers
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
friend |
|
protectedinherited |