Limbo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Attributes | Friends | List of all members
limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 > Class Template Reference

#include <FastMultiSet.h>

Inheritance diagram for limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >:

Public Types

typedef KeyType key_type
 for set concept, value_type is also key_type
 
typedef KeyType value_type
 for set concept, key_type is also value_type
 
typedef Compare1 key_compare1
 
typedef Compare2 key_compare2
 
typedef multiset< key_type,
key_compare1 > 
base_type
 
typedef map< key_type,
typename base_type::iterator,
key_compare2 > 
map_type
 
typedef map_type::value_type map_value_type
 
typedef base_type::reference reference
 
typedef base_type::const_reference const_reference
 
typedef base_type::pointer pointer
 
typedef base_type::const_pointer const_pointer
 
typedef base_type::iterator iterator
 
typedef base_type::const_iterator const_iterator
 
typedef base_type::reverse_iterator reverse_iterator
 
typedef
base_type::const_reverse_iterator 
const_reverse_iterator
 
typedef base_type::difference_type difference_type
 
typedef base_type::size_type size_type
 

Public Member Functions

 FastMultiSet (key_compare1 const &comp1=key_compare1(), key_compare2 const &comp2=key_compare2())
 constructor More...
 
 FastMultiSet (FastMultiSet const &rhs)
 copy constructor More...
 
virtual iterator insert (key_type const &val)
 insert value More...
 
virtual iterator insert (iterator position, key_type const &val)
 insert value with hint of position More...
 
template<typename InputIterator >
void insert (InputIterator first, InputIterator last)
 hide/disable methods in base class More...
 
virtual size_type erase (key_type const &val)
 erase value More...
 
void erase (iterator position)
 hide/disable methods in base class More...
 
void erase (iterator first, iterator last)
 hide/disable methods in base class More...
 
virtual iterator update (key_type const &val)
 update value, the value is changed which means its position is not correct in the container More...
 
virtual size_type count (key_type const &val) const
 use m_map.count rather than multiset::count to have faster access More...
 
virtual iterator find (key_type const &val) const
 use m_map.find rather than std::multiset::find to have faster access More...
 
void print (std::ostream &os) const
 print object More...
 

Protected Attributes

map_type m_map
 internal map
 

Friends

std::ostream & operator<< (std::ostream &os, FastMultiSet const &rhs)
 print object More...
 

Detailed Description

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
class limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >

Template Parameters
KeyType,typeof keys for comparison, also the type of values in the set
Compare1,1stlevel compare type, control multiset
Compare2,2ndlevel compare type, control map

Definition at line 53 of file FastMultiSet.h.

Constructor & Destructor Documentation

template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::FastMultiSet ( key_compare1 const &  comp1 = key_compare1(),
key_compare2 const &  comp2 = key_compare2() 
)
inlineexplicit

constructor

Parameters
comp1first level compare function object
comp2second level compare function object

Definition at line 82 of file FastMultiSet.h.

template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::FastMultiSet ( FastMultiSet< KeyType, Compare1, Compare2 > const &  rhs)
inline

copy constructor

Parameters
rhsa FastMultiSet object

Definition at line 87 of file FastMultiSet.h.

Member Function Documentation

template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
virtual size_type limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::count ( key_type const &  val) const
inlinevirtual

use m_map.count rather than multiset::count to have faster access

Parameters
val
Returns
number of values

Definition at line 166 of file FastMultiSet.h.

template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
virtual size_type limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::erase ( key_type const &  val)
inlinevirtual

erase value

Parameters
valvalue to erase
Returns
number of values erased, always 0 or 1

Definition at line 132 of file FastMultiSet.h.

template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
void limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::erase ( iterator  position)

hide/disable methods in base class

Parameters
position
template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
void limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::erase ( iterator  first,
iterator  last 
)

hide/disable methods in base class

Parameters
first,last
template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
virtual iterator limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::find ( key_type const &  val) const
inlinevirtual

use m_map.find rather than std::multiset::find to have faster access

Parameters
val
Returns
the iterator to the value

Definition at line 173 of file FastMultiSet.h.

template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
virtual iterator limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::insert ( key_type const &  val)
inlinevirtual

insert value

Parameters
valvalue to insert
Returns
iterator to the value

Definition at line 102 of file FastMultiSet.h.

template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
virtual iterator limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::insert ( iterator  position,
key_type const &  val 
)
inlinevirtual

insert value with hint of position

Parameters
position
valvalue to insert
Returns
iterator to the value

Definition at line 115 of file FastMultiSet.h.

template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
template<typename InputIterator >
void limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::insert ( InputIterator  first,
InputIterator  last 
)

hide/disable methods in base class

Parameters
firstbegin iterator
lastend iterator
template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
void limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::print ( std::ostream &  os) const
inline

print object

Parameters
osoutput stream

Definition at line 184 of file FastMultiSet.h.

template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
virtual iterator limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::update ( key_type const &  val)
inlinevirtual

update value, the value is changed which means its position is not correct in the container

Parameters
valupdated value, but it must remain the same in the for Compare2
Returns
iterator to the value

Definition at line 150 of file FastMultiSet.h.

Friends And Related Function Documentation

template<typename KeyType , typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
std::ostream& operator<< ( std::ostream &  os,
FastMultiSet< KeyType, Compare1, Compare2 > const &  rhs 
)
friend

print object

Parameters
osoutput stream
rhsa FastMultiSet object
Returns
reference to the output stream

Definition at line 200 of file FastMultiSet.h.


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