HashMap class template. More...

#include <WHashMap.h>

Collaboration diagram for HashMap< K, V >:

Classes

struct  BaseElement
 
class  Iterator
 

Public Types

using Element = BaseElement< false >
 
using ElementConst = BaseElement< true >
 
using Comparator = bool(*)(const K &, const K &)
 Compare two keys for equality. More...
 
using SortCompare = bool(*)(const ElementConst &e1, const ElementConst &e2)
 Return true if key1 < key2. More...
 

Public Member Functions

 HashMap ()
 
 HashMap (Comparator compare)
 
unsigned int count () const
 
const K & keyAt (unsigned int idx) const
 
K & keyAt (unsigned int idx)
 
const V & valueAt (unsigned int idx) const
 
V & valueAt (unsigned int idx)
 
const V & operator[] (const K &key) const
 
V & operator[] (const K &key)
 
bool allocate (unsigned int newSize)
 
void sort (SortCompare compare)
 Sort map entries. More...
 
int indexOf (const K &key) const
 
bool contains (const K &key) const
 
void removeAt (unsigned index)
 
void remove (const K &key)
 
void clear ()
 
void setMultiple (const HashMap< K, V > &map)
 
void setNullValue (const V &nullv)
 
Iterator< false > begin ()
 
Iterator< false > end ()
 
Iterator< true > begin () const
 
Iterator< true > end () const
 

Protected Types

using KeyList = wiring_private::List< K >
 
using ValueList = wiring_private::List< V >
 

Protected Attributes

KeyList keys
 
ValueList values
 
Comparator cb_comparator {nullptr}
 
unsigned currentIndex {0}
 
nil {}
 

Detailed Description

template<typename K, typename V>
class HashMap< K, V >

HashMap class template.

Member Typedef Documentation

◆ Comparator

template<typename K , typename V >
using HashMap< K, V >::Comparator = bool (*)(const K&, const K&)

Compare two keys for equality.

◆ Element

template<typename K , typename V >
using HashMap< K, V >::Element = BaseElement<false>

◆ ElementConst

template<typename K , typename V >
using HashMap< K, V >::ElementConst = BaseElement<true>

◆ KeyList

template<typename K , typename V >
using HashMap< K, V >::KeyList = wiring_private::List<K>
protected

◆ SortCompare

template<typename K , typename V >
using HashMap< K, V >::SortCompare = bool (*)(const ElementConst& e1, const ElementConst& e2)

Return true if key1 < key2.

◆ ValueList

template<typename K , typename V >
using HashMap< K, V >::ValueList = wiring_private::List<V>
protected

Constructor & Destructor Documentation

◆ HashMap() [1/2]

template<typename K , typename V >
HashMap< K, V >::HashMap ( )
inline

◆ HashMap() [2/2]

template<typename K , typename V >
HashMap< K, V >::HashMap ( Comparator  compare)
inline

Member Function Documentation

◆ allocate()

template<typename K , typename V >
bool HashMap< K, V >::allocate ( unsigned int  newSize)
inline

◆ begin() [1/2]

template<typename K , typename V >
Iterator<false> HashMap< K, V >::begin ( )
inline

◆ begin() [2/2]

template<typename K , typename V >
Iterator<true> HashMap< K, V >::begin ( ) const
inline

◆ clear()

template<typename K , typename V >
void HashMap< K, V >::clear ( void  )
inline

◆ contains()

template<typename K , typename V >
bool HashMap< K, V >::contains ( const K &  key) const
inline

◆ count()

template<typename K , typename V >
unsigned int HashMap< K, V >::count ( ) const
inline

◆ end() [1/2]

template<typename K , typename V >
Iterator<false> HashMap< K, V >::end ( )
inline

◆ end() [2/2]

template<typename K , typename V >
Iterator<true> HashMap< K, V >::end ( ) const
inline

◆ indexOf()

template<typename K , typename V >
int HashMap< K, V >::indexOf ( const K &  key) const
inline

◆ keyAt() [1/2]

template<typename K , typename V >
K& HashMap< K, V >::keyAt ( unsigned int  idx)
inline

◆ keyAt() [2/2]

template<typename K , typename V >
const K& HashMap< K, V >::keyAt ( unsigned int  idx) const
inline

◆ operator[]() [1/2]

template<typename K , typename V >
V & HashMap< K, V >::operator[] ( const K &  key)

◆ operator[]() [2/2]

template<typename K , typename V >
const V& HashMap< K, V >::operator[] ( const K &  key) const
inline

◆ remove()

template<typename K , typename V >
void HashMap< K, V >::remove ( const K &  key)
inline

◆ removeAt()

template<typename K , typename V >
void HashMap< K, V >::removeAt ( unsigned  index)
inline

◆ setMultiple()

template<typename K , typename V >
void HashMap< K, V >::setMultiple ( const HashMap< K, V > &  map)
inline

◆ setNullValue()

template<typename K , typename V >
void HashMap< K, V >::setNullValue ( const V &  nullv)
inline

◆ sort()

template<typename K , typename V >
void HashMap< K, V >::sort ( SortCompare  compare)

Sort map entries.

◆ valueAt() [1/2]

template<typename K , typename V >
V& HashMap< K, V >::valueAt ( unsigned int  idx)
inline

◆ valueAt() [2/2]

template<typename K , typename V >
const V& HashMap< K, V >::valueAt ( unsigned int  idx) const
inline

Member Data Documentation

◆ cb_comparator

template<typename K , typename V >
Comparator HashMap< K, V >::cb_comparator {nullptr}
protected

◆ currentIndex

template<typename K , typename V >
unsigned HashMap< K, V >::currentIndex {0}
protected

◆ keys

template<typename K , typename V >
KeyList HashMap< K, V >::keys
protected

◆ nil

template<typename K , typename V >
V HashMap< K, V >::nil {}
protected

◆ values

template<typename K , typename V >
ValueList HashMap< K, V >::values
protected

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