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 |