Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

hashmap< keyT, dataT, hasherT, mapT > Class Template Reference

#include <hashmap.h>

Inheritance diagram for hashmap< keyT, dataT, hasherT, mapT >:

Inheritance graph
[legend]
List of all members.

template<class keyT, class dataT, class hasherT, class mapT>
class hashmap< keyT, dataT, hasherT, mapT >


Public Member Functions

iterator begin ()
 return the first element valid element

iterator end ()
 return the end iterator

 hashmap (unsigned int n=127, unsigned int lf=10)
 default constructor initialize the table of size n=127

unsigned int size () const
 to the users, they do no know about the vector size they just care the number of elements

iterator insert (keyT key, dataT data)
 insert an item, this may cause expand to be called

iterator insert (std::pair< keyT, dataT > pa)
 insert an item, calls insert(key, data)

dataT & operator[] (const keyT &key)
 operation []

iterator find (keyT v)
 return an iterator points to the key, if not found return end

bool remove (keyT x)
 remove a key

bool erase (keyT x)
 erase a key, same as remove.


Protected Member Functions

bool needToRehash ()
 check the condition to see if we need to rehash

void rehash ()
 expand the table and rehash all keys when the table is too small


Protected Attributes

hash_array table
 array that hold the actual values

unsigned int vectorSize
 size of the vector

unsigned int tableSize
 number of elements

unsigned int loadFactor
 load factor controls how the rehash condition will be set.

unsigned int collision
 debug


Private Types

typedef std::map< keyT, dataT,
mapT > 
stdmap
typedef std::vector< stdmaphash_array

Member Typedef Documentation

template<class keyT, class dataT, class hasherT, class mapT>
typedef std::vector< stdmap > hashmap< keyT, dataT, hasherT, mapT >::hash_array [private]
 

Definition at line 22 of file hashmap.h.

template<class keyT, class dataT, class hasherT, class mapT>
typedef std::map<keyT, dataT, mapT> hashmap< keyT, dataT, hasherT, mapT >::stdmap [private]
 

Definition at line 21 of file hashmap.h.


Constructor & Destructor Documentation

template<class keyT, class dataT, class hasherT, class mapT>
hashmap< keyT, dataT, hasherT, mapT >::hashmap unsigned int  n = 127,
unsigned int  lf = 10
[inline]
 

default constructor initialize the table of size n=127

Definition at line 116 of file hashmap.h.


Member Function Documentation

template<class keyT, class dataT, class hasherT, class mapT>
iterator hashmap< keyT, dataT, hasherT, mapT >::begin  )  [inline]
 

return the first element valid element

Definition at line 99 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::rehash().

template<class keyT, class dataT, class hasherT, class mapT>
iterator hashmap< keyT, dataT, hasherT, mapT >::end  )  [inline]
 

return the end iterator

Definition at line 110 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::begin(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::find(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::insert(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::operator[](), and hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::rehash().

template<class keyT, class dataT, class hasherT, class mapT>
bool hashmap< keyT, dataT, hasherT, mapT >::erase keyT  x  )  [inline]
 

erase a key, same as remove.

Definition at line 213 of file hashmap.h.

template<class keyT, class dataT, class hasherT, class mapT>
iterator hashmap< keyT, dataT, hasherT, mapT >::find keyT  v  )  [inline]
 

return an iterator points to the key, if not found return end

Parameters:
v key
Returns:
iterator points to the key

Definition at line 179 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::operator[]().

template<class keyT, class dataT, class hasherT, class mapT>
iterator hashmap< keyT, dataT, hasherT, mapT >::insert std::pair< keyT, dataT >  pa  )  [inline]
 

insert an item, calls insert(key, data)

Definition at line 156 of file hashmap.h.

template<class keyT, class dataT, class hasherT, class mapT>
iterator hashmap< keyT, dataT, hasherT, mapT >::insert keyT  key,
dataT  data
[inline]
 

insert an item, this may cause expand to be called

Parameters:
key the key
data the data
Returns:
iterator of the item just inserted

Definition at line 136 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::insert(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::operator[](), and hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::rehash().

template<class keyT, class dataT, class hasherT, class mapT>
bool hashmap< keyT, dataT, hasherT, mapT >::needToRehash  )  [inline, protected]
 

check the condition to see if we need to rehash

Definition at line 232 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::insert().

template<class keyT, class dataT, class hasherT, class mapT>
dataT& hashmap< keyT, dataT, hasherT, mapT >::operator[] const keyT &  key  )  [inline]
 

operation []

Definition at line 163 of file hashmap.h.

template<class keyT, class dataT, class hasherT, class mapT>
void hashmap< keyT, dataT, hasherT, mapT >::rehash  )  [inline, protected]
 

expand the table and rehash all keys when the table is too small

Definition at line 239 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::insert().

template<class keyT, class dataT, class hasherT, class mapT>
bool hashmap< keyT, dataT, hasherT, mapT >::remove keyT  x  )  [inline]
 

remove a key

Parameters:
x key
Returns:
if the key is found and deleted

Definition at line 195 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::erase().

template<class keyT, class dataT, class hasherT, class mapT>
unsigned int hashmap< keyT, dataT, hasherT, mapT >::size  )  const [inline]
 

to the users, they do no know about the vector size they just care the number of elements

Definition at line 125 of file hashmap.h.


Member Data Documentation

template<class keyT, class dataT, class hasherT, class mapT>
unsigned int hashmap< keyT, dataT, hasherT, mapT >::collision [protected]
 

debug

Definition at line 229 of file hashmap.h.

template<class keyT, class dataT, class hasherT, class mapT>
unsigned int hashmap< keyT, dataT, hasherT, mapT >::loadFactor [protected]
 

load factor controls how the rehash condition will be set.

Definition at line 226 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::hashmap(), and hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::needToRehash().

template<class keyT, class dataT, class hasherT, class mapT>
hash_array hashmap< keyT, dataT, hasherT, mapT >::table [protected]
 

array that hold the actual values

Definition at line 220 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::begin(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::end(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::find(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::hashmap(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::insert(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::rehash(), and hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::remove().

template<class keyT, class dataT, class hasherT, class mapT>
unsigned int hashmap< keyT, dataT, hasherT, mapT >::tableSize [protected]
 

number of elements

Definition at line 224 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::hashmap(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::insert(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::needToRehash(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::rehash(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::remove(), and hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::size().

template<class keyT, class dataT, class hasherT, class mapT>
unsigned int hashmap< keyT, dataT, hasherT, mapT >::vectorSize [protected]
 

size of the vector

Definition at line 222 of file hashmap.h.

Referenced by hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::find(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::hashmap(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::insert(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::needToRehash(), hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::rehash(), and hashmap< ADFSampleAddress, ADFSample, ADFSampleHasher, ADFSampleMap >::remove().


The documentation for this class was generated from the following file:
Generated on Mon Jun 28 15:02:19 2004 for Advanced Surface Library by doxygen 1.3.4