Limbo 3.5.4
Loading...
Searching...
No Matches
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
 FastMultiSet (FastMultiSet const &rhs)
 copy constructor
virtual iterator insert (key_type const &val)
 insert value
virtual iterator insert (iterator position, key_type const &val)
 insert value with hint of position
template<typename InputIterator>
void insert (InputIterator first, InputIterator last)
 hide/disable methods in base class
virtual size_type erase (key_type const &val)
 erase value
void erase (iterator position)
 hide/disable methods in base class
void erase (iterator first, iterator last)
 hide/disable methods in base class
virtual iterator update (key_type const &val)
 update value, the value is changed which means its position is not correct in the container
virtual size_type count (key_type const &val) const
 use m_map.count rather than multiset::count to have faster access
virtual iterator find (key_type const &val) const
 use m_map.find rather than std::multiset::find to have faster access
void print (std::ostream &os) const
 print object

Protected Attributes

map_type m_map
 internal map

Friends

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

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.

Member Typedef Documentation

◆ base_type

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef multiset<key_type, key_compare1> limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::base_type

Definition at line 63 of file FastMultiSet.h.

◆ const_iterator

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef base_type::const_iterator limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::const_iterator

Definition at line 72 of file FastMultiSet.h.

◆ const_pointer

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef base_type::const_pointer limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::const_pointer

Definition at line 70 of file FastMultiSet.h.

◆ const_reference

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef base_type::const_reference limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::const_reference

Definition at line 68 of file FastMultiSet.h.

◆ const_reverse_iterator

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef base_type::const_reverse_iterator limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::const_reverse_iterator

Definition at line 74 of file FastMultiSet.h.

◆ difference_type

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef base_type::difference_type limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::difference_type

Definition at line 75 of file FastMultiSet.h.

◆ iterator

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef base_type::iterator limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::iterator

Definition at line 71 of file FastMultiSet.h.

◆ key_compare1

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

Definition at line 61 of file FastMultiSet.h.

◆ key_compare2

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

Definition at line 62 of file FastMultiSet.h.

◆ key_type

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

for set concept, value_type is also key_type

Definition at line 57 of file FastMultiSet.h.

◆ map_type

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef map<key_type, typename base_type::iterator, key_compare2> limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::map_type

Definition at line 64 of file FastMultiSet.h.

◆ map_value_type

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef map_type::value_type limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::map_value_type

Definition at line 65 of file FastMultiSet.h.

◆ pointer

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef base_type::pointer limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::pointer

Definition at line 69 of file FastMultiSet.h.

◆ reference

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef base_type::reference limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::reference

Definition at line 67 of file FastMultiSet.h.

◆ reverse_iterator

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef base_type::reverse_iterator limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::reverse_iterator

Definition at line 73 of file FastMultiSet.h.

◆ size_type

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
typedef base_type::size_type limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::size_type

Definition at line 76 of file FastMultiSet.h.

◆ value_type

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

for set concept, key_type is also value_type

Definition at line 59 of file FastMultiSet.h.

Constructor & Destructor Documentation

◆ FastMultiSet() [1/2]

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.

◆ FastMultiSet() [2/2]

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

◆ count()

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.

◆ erase() [1/3]

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

◆ erase() [2/3]

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

◆ erase() [3/3]

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.

◆ find()

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.

◆ insert() [1/3]

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

◆ insert() [2/3]

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.

◆ insert() [3/3]

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.

◆ print()

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.

◆ update()

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.

◆ operator<<

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.

Member Data Documentation

◆ m_map

template<typename KeyType, typename Compare1 = less<KeyType>, typename Compare2 = less<KeyType>>
map_type limbo::containers::FastMultiSet< KeyType, Compare1, Compare2 >::m_map
protected

internal map

Definition at line 207 of file FastMultiSet.h.


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