Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS > Class Template Reference

#include <cHashTable.h>

Inheritance diagram for Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >:
Gray::cHashTableRef< GrayLib::cXObject, UID_t, 9 > Gray::cHashTableRef< GrayLib::cXObject, UID_t, 6 > Gray::cHashTableRef< GrayLib::cStrPathNode >

Public Types

typedef cHashIterator iterator
 

Public Member Functions

int get_HashBits () const
 
ITERATE_t get_HashArrayQty () const
 
ITERATE_t GetHashArray (TYPE_HASHCODE rid) const
 
ITERATE_t GetArraySize (ITERATE_t iArray) const
 
iterator FindIForKey (TYPE_HASHCODE rid) const
 
TYPE_HASHCODE FindKeyFree (TYPE_HASHCODE rid) const
 
bool DeleteKey (TYPE_HASHCODE rid)
 
bool IsEmpty () const
 
ITERATE_t get_TotalCount () const
 
void RemoveAt (iterator &i)
 
void RemoveAll ()
 
void Empty ()
 

Public Attributes

_TYPEARRAY m_aTable [k_HASH_ARRAY_QTY]
 

Static Public Attributes

static const ITERATE_t k_HASH_ARRAY_QTY = (((size_t)1)<<( TYPE_HASHBITS ))
 

Friends

class cHashTableTests
 

Detailed Description

template<class _TYPEARRAY, class TYPE, typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
class Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >

base class for a full hash table. similar to CMap in MFC

Note
beware TYPE_HASHBITS can make this object huge! TYPE_HASHBITS=5 = 32 buckets.

Member Typedef Documentation

◆ iterator

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
typedef cHashIterator Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::iterator

Member Function Documentation

◆ DeleteKey()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
bool Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::DeleteKey ( TYPE_HASHCODE  rid)
inline

delete it

◆ Empty()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
void Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::Empty ( )
inline

◆ FindIForKey()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
iterator Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::FindIForKey ( TYPE_HASHCODE  rid) const
inline

◆ FindKeyFree()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
TYPE_HASHCODE Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::FindKeyFree ( TYPE_HASHCODE  rid) const
inline

Find the next free/unused TYPE_HASHCODE key after rid.

◆ get_HashArrayQty()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
ITERATE_t Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::get_HashArrayQty ( ) const
inline

◆ get_HashBits()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
int Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::get_HashBits ( ) const
inline

◆ get_TotalCount()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
ITERATE_t Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::get_TotalCount ( ) const
inline

◆ GetArraySize()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
ITERATE_t Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::GetArraySize ( ITERATE_t  iArray) const
inline

◆ GetHashArray()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
ITERATE_t Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::GetHashArray ( TYPE_HASHCODE  rid) const
inline
Returns
the hash table array/bucket number for TYPE_HASHCODE rid.

◆ IsEmpty()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
bool Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::IsEmpty ( ) const
inline

◆ RemoveAll()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
void Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::RemoveAll ( )
inline

◆ RemoveAt()

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
void Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::RemoveAt ( iterator i)
inline

Friends And Related Function Documentation

◆ cHashTableTests

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
friend class cHashTableTests
friend

Member Data Documentation

◆ k_HASH_ARRAY_QTY

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
const ITERATE_t Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::k_HASH_ARRAY_QTY = (((size_t)1)<<( TYPE_HASHBITS ))
static

◆ m_aTable

template<class _TYPEARRAY , class TYPE , typename TYPE_HASHCODE = HASHCODE_t, int TYPE_HASHBITS = 5>
_TYPEARRAY Gray::cHashTableT< _TYPEARRAY, TYPE, TYPE_HASHCODE, TYPE_HASHBITS >::m_aTable[k_HASH_ARRAY_QTY]

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