Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder > Class Template Reference

The class template sg_set is an intrusive container, that mimics most of the interface of std::sg_set as described in the C++ standard. More...

#include <sg_set.hpp>

Inheritance diagram for boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >:
Collaboration diagram for boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >:

Public Types

typedef
implementation_defined::value_type 
value_type
 
typedef
implementation_defined::value_traits 
value_traits
 
typedef
implementation_defined::pointer 
pointer
 
typedef
implementation_defined::const_pointer 
const_pointer
 
typedef
implementation_defined::reference 
reference
 
typedef
implementation_defined::const_reference 
const_reference
 
typedef
implementation_defined::difference_type 
difference_type
 
typedef
implementation_defined::size_type 
size_type
 
typedef
implementation_defined::value_compare 
value_compare
 
typedef
implementation_defined::key_compare 
key_compare
 
typedef
implementation_defined::iterator 
iterator
 
typedef
implementation_defined::const_iterator 
const_iterator
 
typedef
implementation_defined::reverse_iterator 
reverse_iterator
 
typedef
implementation_defined::const_reverse_iterator 
const_reverse_iterator
 
typedef
implementation_defined::insert_commit_data 
insert_commit_data
 
typedef
implementation_defined::node_traits 
node_traits
 
typedef
implementation_defined::node 
node
 
typedef
implementation_defined::node_ptr 
node_ptr
 
typedef
implementation_defined::const_node_ptr 
const_node_ptr
 
typedef
implementation_defined::node_algorithms 
node_algorithms
 
typedef
implementation_defined::key_type 
key_type
 

Public Member Functions

 sg_set_impl (const value_compare &cmp=value_compare(), const value_traits &v_traits=value_traits())
 
template<class Iterator >
 sg_set_impl (Iterator b, Iterator e, const value_compare &cmp=value_compare(), const value_traits &v_traits=value_traits())
 
 sg_set_impl (BOOST_RV_REF(sg_set_impl) x)
 
sg_set_imploperator= (BOOST_RV_REF(sg_set_impl) x)
 
std::pair< iterator, bool > insert (reference value)
 
iterator insert (const_iterator hint, reference value)
 
template<class KeyType , class KeyValueCompare >
std::pair< iterator, bool > insert_check (const KeyType &key, KeyValueCompare key_value_comp, insert_commit_data &commit_data)
 
template<class KeyType , class KeyValueCompare >
std::pair< iterator, bool > insert_check (const_iterator hint, const KeyType &key, KeyValueCompare key_value_comp, insert_commit_data &commit_data)
 
template<class Iterator >
void insert (Iterator b, Iterator e)
 
iterator insert_commit (reference value, const insert_commit_data &commit_data)
 
size_type count (const_reference value) const
 
template<class KeyType , class KeyValueCompare >
size_type count (const KeyType &key, KeyValueCompare comp) const
 
std::pair< iterator, iteratorequal_range (const_reference value)
 
template<class KeyType , class KeyValueCompare >
std::pair< iterator, iteratorequal_range (const KeyType &key, KeyValueCompare comp)
 
std::pair< const_iterator,
const_iterator
equal_range (const_reference value) const
 
template<class KeyType , class KeyValueCompare >
std::pair< const_iterator,
const_iterator
equal_range (const KeyType &key, KeyValueCompare comp) const
 
typedef BOOST_INTRUSIVE_IMPDEF (sgtree_algorithms< node_traits >) node_algorithms
 
typedef BOOST_INTRUSIVE_IMPDEF (typename node_algorithms::insert_commit_data) insert_commit_data
 
void swap (sgtree_impl &other)
 
void clone_from (const sgtree_impl &src, Cloner cloner, Disposer disposer)
 
iterator insert_equal (reference value)
 
iterator insert_equal (const_iterator hint, reference value)
 
void insert_equal (Iterator b, Iterator e)
 
std::pair< iterator, bool > insert_unique (reference value)
 
iterator insert_unique (const_iterator hint, reference value)
 
void insert_unique (Iterator b, Iterator e)
 
std::pair< iterator, bool > insert_unique_check (const KeyType &key, KeyValueCompare key_value_comp, insert_commit_data &commit_data)
 
std::pair< iterator, bool > insert_unique_check (const_iterator hint, const KeyType &key, KeyValueCompare key_value_comp, insert_commit_data &commit_data)
 
iterator insert_unique_commit (reference value, const insert_commit_data &commit_data)
 
iterator insert_before (const_iterator pos, reference value)
 
void push_back (reference value)
 
void push_front (reference value)
 
iterator erase (const_iterator i)
 
iterator erase (const_iterator b, const_iterator e)
 
size_type erase (const_reference value)
 
size_type erase (const KeyType &key, KeyValueCompare comp)
 
iterator erase_and_dispose (const_iterator i, Disposer disposer)
 
iterator erase_and_dispose (iterator i, Disposer disposer)
 
iterator erase_and_dispose (const_iterator b, const_iterator e, Disposer disposer)
 
size_type erase_and_dispose (const_reference value, Disposer disposer)
 
size_type erase_and_dispose (const KeyType &key, KeyValueCompare comp, Disposer disposer)
 
void clear ()
 
void clear_and_dispose (Disposer disposer)
 
float balance_factor () const
 Returns: The balance factor (alpha) used in this tree More...
 
void balance_factor (float new_alpha)
 Requires: new_alpha must be a value between 0.5 and 1.0 More...
 

Static Public Attributes

static const bool constant_time_size = tree_type::constant_time_size
 
static const bool floating_point
 
static const bool stateful_value_traits
 

Detailed Description

template<class ValueTraits, class Compare, class SizeType, bool FloatingPoint, typename HeaderHolder>
class boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >

The class template sg_set is an intrusive container, that mimics most of the interface of std::sg_set as described in the C++ standard.

The template parameter T is the type to be managed by the container. The user can specify additional options and if no options are provided default options are used.

The container supports the following options: base_hook<>/member_hook<>/value_traits<>, floating_point<>, size_type<> and compare<>.

Member Typedef Documentation

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::const_iterator boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::const_iterator
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::const_node_ptr boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::const_node_ptr
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::const_pointer boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::const_pointer
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::const_reference boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::const_reference
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::const_reverse_iterator boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::const_reverse_iterator
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::difference_type boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::difference_type
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::insert_commit_data boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::insert_commit_data
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::iterator boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::iterator
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::key_compare boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::key_compare
typedef implementation_defined::key_type boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::key_type
inherited
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::node boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::node
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::node_algorithms boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::node_algorithms
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::node_ptr boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::node_ptr
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::node_traits boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::node_traits
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::pointer boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::pointer
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::reference boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::reference
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::reverse_iterator boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::reverse_iterator
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::size_type boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::size_type
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::value_compare boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::value_compare
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::value_traits boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::value_traits
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
typedef implementation_defined::value_type boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::value_type

Constructor & Destructor Documentation

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::sg_set_impl ( const value_compare cmp = value_compare(),
const value_traits v_traits = value_traits() 
)
inlineexplicit

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
template<class Iterator >
boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::sg_set_impl ( Iterator  b,
Iterator  e,
const value_compare cmp = value_compare(),
const value_traits v_traits = value_traits() 
)
inline

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::sg_set_impl ( BOOST_RV_REF(sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >)  x)
inline

Member Function Documentation

float boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::balance_factor ( ) const
inlineinherited

Returns: The balance factor (alpha) used in this tree

Throws: Nothing.

Complexity: Constant.

void boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::balance_factor ( float  new_alpha)
inlineinherited

Requires: new_alpha must be a value between 0.5 and 1.0

Effects: Establishes a new balance factor (alpha) and rebalances the tree if the new balance factor is stricter (less) than the old factor.

Throws: Nothing.

Complexity: Linear to the elements in the subtree.

References boost::BOOST_STATIC_ASSERT(), and boost::size().

typedef boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::BOOST_INTRUSIVE_IMPDEF ( sgtree_algorithms< node_traits )
inherited
typedef boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::BOOST_INTRUSIVE_IMPDEF ( typename node_algorithms::insert_commit_data  )
inherited
void boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::clear ( void  )
inlineinherited
void boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::clear_and_dispose ( Disposer  disposer)
inlineinherited

void boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::clone_from ( const sgtree_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder > &  src,
Cloner  cloner,
Disposer  disposer 
)
inlineinherited

Additional notes: it also copies the alpha factor from the source container.

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
size_type boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::count ( const_reference  value) const
inline
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
template<class KeyType , class KeyValueCompare >
size_type boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::count ( const KeyType &  key,
KeyValueCompare  comp 
) const
inline
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
std::pair<iterator,iterator> boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::equal_range ( const_reference  value)
inline

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
template<class KeyType , class KeyValueCompare >
std::pair<iterator,iterator> boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::equal_range ( const KeyType &  key,
KeyValueCompare  comp 
)
inline

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
std::pair<const_iterator, const_iterator> boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::equal_range ( const_reference  value) const
inline

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
template<class KeyType , class KeyValueCompare >
std::pair<const_iterator, const_iterator> boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::equal_range ( const KeyType &  key,
KeyValueCompare  comp 
) const
inline

iterator boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::erase ( const_iterator  i)
inlineinherited
iterator boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::erase ( const_iterator  b,
const_iterator  e 
)
inlineinherited

References boost::n.

size_type boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::erase ( const_reference  value)
inlineinherited
size_type boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::erase ( const KeyType &  key,
KeyValueCompare  comp 
)
inlineinherited
iterator boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::erase_and_dispose ( const_iterator  i,
Disposer  disposer 
)
inlineinherited
iterator boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::erase_and_dispose ( iterator  i,
Disposer  disposer 
)
inlineinherited
iterator boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::erase_and_dispose ( const_iterator  b,
const_iterator  e,
Disposer  disposer 
)
inlineinherited

References boost::n.

size_type boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::erase_and_dispose ( const_reference  value,
Disposer  disposer 
)
inlineinherited
size_type boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::erase_and_dispose ( const KeyType &  key,
KeyValueCompare  comp,
Disposer  disposer 
)
inlineinherited
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
std::pair<iterator, bool> boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::insert ( reference  value)
inline

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
iterator boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::insert ( const_iterator  hint,
reference  value 
)
inline

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
template<class Iterator >
void boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::insert ( Iterator  b,
Iterator  e 
)
inline

iterator boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::insert_before ( const_iterator  pos,
reference  value 
)
inlineinherited
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
template<class KeyType , class KeyValueCompare >
std::pair<iterator, bool> boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::insert_check ( const KeyType &  key,
KeyValueCompare  key_value_comp,
insert_commit_data commit_data 
)
inline

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
template<class KeyType , class KeyValueCompare >
std::pair<iterator, bool> boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::insert_check ( const_iterator  hint,
const KeyType &  key,
KeyValueCompare  key_value_comp,
insert_commit_data commit_data 
)
inline

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
iterator boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::insert_commit ( reference  value,
const insert_commit_data commit_data 
)
inline

iterator boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::insert_equal ( reference  value)
inlineinherited
iterator boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::insert_equal ( const_iterator  hint,
reference  value 
)
inlineinherited
void boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::insert_equal ( Iterator  b,
Iterator  e 
)
inlineinherited
void boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::insert_unique ( Iterator  b,
Iterator  e 
)
inlineinherited
std::pair<iterator, bool> boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::insert_unique_check ( const KeyType &  key,
KeyValueCompare  key_value_comp,
insert_commit_data &  commit_data 
)
inlineinherited
std::pair<iterator, bool> boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::insert_unique_check ( const_iterator  hint,
const KeyType &  key,
KeyValueCompare  key_value_comp,
insert_commit_data &  commit_data 
)
inlineinherited
iterator boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::insert_unique_commit ( reference  value,
const insert_commit_data &  commit_data 
)
inlineinherited
template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
sg_set_impl& boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::operator= ( BOOST_RV_REF(sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >)  x)
inline
void boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::push_back ( reference  value)
inlineinherited
void boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::push_front ( reference  value)
inlineinherited
void boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::swap ( sgtree_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder > &  other)
inlineinherited

Member Data Documentation

template<class ValueTraits , class Compare , class SizeType , bool FloatingPoint, typename HeaderHolder >
const bool boost::intrusive::sg_set_impl< ValueTraits, Compare, SizeType, FloatingPoint, HeaderHolder >::constant_time_size = tree_type::constant_time_size
static
const bool boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::floating_point
staticinherited
const bool boost::intrusive::sgtree_impl< ValueTraits, Compare , SizeType, FloatingPoint, HeaderHolder >::stateful_value_traits
staticinherited

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