![]()
|
TOP --> libjdl
This class provides a simple hash dictionary. It can be used to store data that is keyed by a string value. The following example shows how this class is used:
#include "jdlhashtable.h"
int main(int argc,char* argv[]) {
CJdlHashTable tbl;
// Populate the list
tbl.Insert("FOO",(void*)10);
tbl.Insert("BAR",(void*)30);
tbl.Insert("SPAM",(void*)5);
// Contains?
if(tbl.Contains("FOO")) {
int i = int(tbl.Get("FOO"));
}
return 0;
}
|
| size | The size of the hash table. This number should be a large prime. |
public ~ CJdlHashTable ( ) ;
Destructor.
protected CJdlVector < CJdlRedBlackTree > m_ListOfRbTrees
The hash table is a list of Red-black trees. This guarantees that worst case performance is k + O(n (log (n) ) ).
protected uint m_NumItems
Number of items in the hash table.
public void Resize ( uint size ) ;
Resize the hash table. This is a very costly operation because each entry has to be rehashed. Don't do it if you can possibly avoid it.
| size | Size of the new hashtable. |
public void Insert ( const char * key ,
void * value ) ;
Insert a key/value pair into the hash table.
Duplicate keys are allowed but the retrieval order is not defined.
| key | The retrieval key. |
| value | The user data. |
public void Put ( const char * ,
void * ) ;
Insert a record into the hash table. This method is identical to Insert().
public void * Get ( const char * key ) ;
Retrieve a value from the hash table.
If the key does not exist, 0 is returned. This method should be used in conjunction with Contains() as follows:
if(hash.Contains("MYKEY")) {
int val = (int) hash.Get("MYKEY");
}
| key | The retrieval key. |
public const char * GetKey ( const char * key ) ;
Retrieve the key address from the hash table.
If the key does not exist, 0 is returned. This method should be used in conjunction with Contains() as follows:
if(hash.Contains("MYKEY")) {
const char* key = hash.GetKey("MYKEY");
}
| key | The retrieval key. |
public void Remove ( const char * ) ;
Remove an entry from the hash table. If the specified entry does not exist, nothing is changed.
| key | The retrieval key. |
public bool Contains ( const char * key ) ;
Is this record in the hash table?
| key | The retrieval key. |
public void Clear ( ) ;
Clear the hash table.
public virtual uint Hash ( const char * ) const ;
Hash function based on hashpjw on page 436 of the Aho, Sethi and Ullman Compiler book.
| key | The retrieval key. |
public void Copy ( const CJdlHashTable & tbl ) ;
Copy one hash table to another.
| tbl | Hash table to copy. |
public uint Size ( ) const ;
public uint GetNumItems ( ) const ;
public CJdlHashTable & operator = ( const CJdlHashTable & tbl ) ;
Copy operator.
| tbl | Hash table to copy. |
This documentation was generated automatically by the ccdoc tool (version 0.7a).
Click here to submit a bug report or feature request.
Click here to return to the top of the page.