theplu::yat::utility::SegmentSet< T, Compare > Class Template Reference

a set of Segments More...

#include <yat/utility/SegmentSet.h>

Inheritance diagram for theplu::yat::utility::SegmentSet< T, Compare >:

theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > >, Compare, Identity< const Segment< T, Compare > & > >

List of all members.

Public Types

typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::key_type 
key_type
 key type
typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::value_type 
value_type
 value type
typedef key_type::value_type element_type
 element type
typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::key_compare 
key_compare
 key compare
typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::value_compare 
value_compare
 calue compare
typedef Compare element_compare
 element compare
typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::pointer 
pointer
 pointer
typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::reference 
reference
 reference
typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::const_reference 
const_reference
 const reference
typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::size_type 
size_type
 size_type
typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::difference_type 
difference_type
 difference_type
typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::iterator 
iterator
 iterator
typedef std::set< Segment< T,
Compare >, SegmentCompare< T,
Compare > >::const_iterator 
const_iterator
 const_iterator

Public Member Functions

 SegmentSet (void)
 creates a set with no segments
me::const_iterator insert_merge (const typename me::value_type &segment)
const_iterator begin (void) const
iterator begin (void)
void clear (void)
 erases all segments
size_type count (const element_type &element) const
bool empty (void) const
const_iterator end (void) const
iterator end (void)
const_iterator find (const element_type &vt) const
std::pair< iterator, bool > insert (const value_type &segment)
 insert value
key_compare key_comp (void) const
iterator lower_bound (const element_type &element)
const_iterator lower_bound (const element_type &element) const
size_type size (void) const
iterator upper_bound (const element_type &element)
const_iterator upper_bound (const element_type &element) const
value_compare value_comp (void) const

Protected Member Functions

std::pair< iterator, iteratoroverlap_range (const key_type &segment)

Protected Attributes

std::set< Segment< T, Compare >
, SegmentCompare< T, Compare > > 
container_
 underlying container


Detailed Description

template<typename T, class Compare = std::less<T>>
class theplu::yat::utility::SegmentSet< T, Compare >

a set of Segments

A container that holds a set of Segment. The Segments cannot overlap.

Since:
new in yat 0.7

Member Function Documentation

iterator theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::begin ( void   )  [inline, inherited]

Returns:
iterator to first Segment

const_iterator theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::begin ( void   )  const [inline, inherited]

Returns:
const iterator to first Segment

size_type theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::count ( const element_type &  element  )  const [inherited]

Returns:
1 if there is a set that overlaps with element

bool theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::empty ( void   )  const [inline, inherited]

Returns:
true

iterator theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::end ( void   )  [inline, inherited]

Returns:
end of set

const_iterator theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::end ( void   )  const [inline, inherited]

Returns:
end of set

const_iterator theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::find ( const element_type &  vt  )  const [inherited]

Returns:
an iterator pointing to the Segment that contains vt. If no Segment contains vt, end() is returned.

std::pair<iterator, bool> theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::insert ( const value_type &  segment  )  [inherited]

insert value

if segment does not overlap with any segment in set, insert segment; otherwise do nothing.

Returns:
a pair where pair.first points to the added segment or if segment was not added it points to a Segment in set that overlaps with segment; pair.second is true if segment was added.

template<typename T , class Compare = std::less<T>>
me::const_iterator theplu::yat::utility::SegmentSet< T, Compare >::insert_merge ( const typename me::value_type segment  )  [inline]

insert segment into set. If there is no gap between segment and neighboring segments the segments are merged.

key_compare theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::key_comp ( void   )  const [inline, inherited]

Returns:
Comparison functor to compare to segments

const_iterator theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::lower_bound ( const element_type &  element  )  const [inherited]

Returns:
iterator pointing to first segment that overlaps with element or is greater than element.

iterator theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::lower_bound ( const element_type &  element  )  [inherited]

Returns:
iterator pointing to first segment that overlaps with element or is greater than element.

std::pair<iterator, iterator> theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::overlap_range ( const key_type &  segment  )  [inline, protected, inherited]

pair.first first (smallest) segment that overlaps with segment and pair.second first (smallest) segment that does not overlap with segment.

size_type theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::size ( void   )  const [inline, inherited]

Returns:
number of segments in set

const_iterator theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::upper_bound ( const element_type &  element  )  const [inherited]

Returns:
iterator pointing to first segment that is greater than segment.

iterator theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::upper_bound ( const element_type &  element  )  [inherited]

Returns:
iterator pointing to first segment that is greater than segment.

value_compare theplu::yat::utility::SegmentTree< std::set< Segment< T, Compare >, SegmentCompare< T, Compare > > , Compare , Identity< const Segment< T, Compare > & > >::value_comp ( void   )  const [inline, inherited]

Returns:
Comparison functor to compare to segments


The documentation for this class was generated from the following file:

Generated on Mon Nov 7 02:25:53 2011 for yat by  doxygen 1.5.9