HashMap class template. More...

#include <WHashMap.h>

Collaboration diagram for HashMap< K, V >:
[legend]

Classes

struct  BaseElement
 
class  Iterator
 

Public Types

using Comparator = bool(*)(const K &, const K &)
 
using Element = BaseElement< false >
 
using ElementConst = BaseElement< true >
 

Public Member Functions

 HashMap ()
 
 HashMap (Comparator compare)
 
 ~HashMap ()
 
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)
 
void allocate (unsigned int newSize)
 
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 Attributes

K ** keys = nullptr
 
V ** values = nullptr
 
nil
 
uint16_t currentIndex = 0
 
uint16_t size = 0
 
Comparator cb_comparator = nullptr
 

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&)

◆ 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>

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

◆ ~HashMap()

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

Member Function Documentation

◆ allocate()

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

◆ 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  )

◆ 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

◆ keyAt() [1/2]

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

◆ keyAt() [2/2]

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

◆ operator[]() [1/2]

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

◆ operator[]() [2/2]

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

◆ 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)

◆ setMultiple()

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

◆ setNullValue()

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

◆ valueAt() [1/2]

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

◆ valueAt() [2/2]

template<typename K, typename V>
V& HashMap< K, V >::valueAt ( unsigned int  idx)
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>
uint16_t HashMap< K, V >::currentIndex = 0
protected

◆ keys

template<typename K, typename V>
K** HashMap< K, V >::keys = nullptr
protected

◆ nil

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

◆ size

template<typename K, typename V>
uint16_t HashMap< K, V >::size = 0
protected

◆ values

template<typename K, typename V>
V** HashMap< K, V >::values = nullptr
protected

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