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

hashset< keyT, hasherT, setT > Class Template Reference

#include <hashset.h>

List of all members.

template<class keyT, class hasherT, class setT>
class hashset< keyT, hasherT, setT >


Public Types

typedef std::set< keyT, setT > stdset
typedef std::vector< stdsethash_array

Public Member Functions

iterator begin ()
 return the first element valid element

iterator end ()
 return the end

 hashset (unsigned int n=127, unsigned int lf=10)
 default constructor initialize the table of size n. default size is 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)
 insert an item, this may cause expand to be called

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.


Member Typedef Documentation

template<class keyT, class hasherT, class setT>
typedef std::vector< stdset > hashset< keyT, hasherT, setT >::hash_array
 

Definition at line 22 of file hashset.h.

Referenced by hashset< keyT, hasherT, setT >::rehash().

template<class keyT, class hasherT, class setT>
typedef std::set<keyT, setT> hashset< keyT, hasherT, setT >::stdset
 

Definition at line 21 of file hashset.h.


Constructor & Destructor Documentation

template<class keyT, class hasherT, class setT>
hashset< keyT, hasherT, setT >::hashset unsigned int  n = 127,
unsigned int  lf = 10
[inline]
 

default constructor initialize the table of size n. default size is 127

Definition at line 114 of file hashset.h.

References hashset< keyT, hasherT, setT >::loadFactor, hashset< keyT, hasherT, setT >::table, hashset< keyT, hasherT, setT >::tableSize, and hashset< keyT, hasherT, setT >::vectorSize.


Member Function Documentation

template<class keyT, class hasherT, class setT>
iterator hashset< keyT, hasherT, setT >::begin  )  [inline]
 

return the first element valid element

Definition at line 97 of file hashset.h.

References hashset< keyT, hasherT, setT >::end(), and hashset< keyT, hasherT, setT >::table.

Referenced by ADFPruner::prune(), and hashset< keyT, hasherT, setT >::rehash().

template<class keyT, class hasherT, class setT>
iterator hashset< keyT, hasherT, setT >::end  )  [inline]
 

return the end

Definition at line 108 of file hashset.h.

References hashset< keyT, hasherT, setT >::table.

Referenced by hashset< keyT, hasherT, setT >::begin(), hashset< keyT, hasherT, setT >::find(), hashset< keyT, hasherT, setT >::insert(), ADFPruner::prune(), and hashset< keyT, hasherT, setT >::rehash().

template<class keyT, class hasherT, class setT>
bool hashset< keyT, hasherT, setT >::erase keyT  x  )  [inline]
 

erase a key, same as remove.

Definition at line 190 of file hashset.h.

References hashset< keyT, hasherT, setT >::remove().

template<class keyT, class hasherT, class setT>
iterator hashset< keyT, hasherT, setT >::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 157 of file hashset.h.

References hashset< keyT, hasherT, setT >::end(), hashset< keyT, hasherT, setT >::table, and hashset< keyT, hasherT, setT >::vectorSize.

template<class keyT, class hasherT, class setT>
iterator hashset< keyT, hasherT, setT >::insert keyT  key  )  [inline]
 

insert an item, this may cause expand to be called

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

Definition at line 133 of file hashset.h.

References hashset< keyT, hasherT, setT >::end(), hashset< keyT, hasherT, setT >::needToRehash(), hashset< keyT, hasherT, setT >::rehash(), hashset< keyT, hasherT, setT >::table, hashset< keyT, hasherT, setT >::tableSize, and hashset< keyT, hasherT, setT >::vectorSize.

Referenced by ADFPruner::prune(), and hashset< keyT, hasherT, setT >::rehash().

template<class keyT, class hasherT, class setT>
bool hashset< keyT, hasherT, setT >::needToRehash  )  [inline, protected]
 

check the condition to see if we need to rehash

Definition at line 206 of file hashset.h.

References hashset< keyT, hasherT, setT >::loadFactor, hashset< keyT, hasherT, setT >::tableSize, and hashset< keyT, hasherT, setT >::vectorSize.

Referenced by hashset< keyT, hasherT, setT >::insert().

template<class keyT, class hasherT, class setT>
void hashset< keyT, hasherT, setT >::rehash  )  [inline, protected]
 

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

Definition at line 213 of file hashset.h.

References hashset< keyT, hasherT, setT >::begin(), hashset< keyT, hasherT, setT >::end(), hashset< keyT, hasherT, setT >::hash_array, hashset< keyT, hasherT, setT >::insert(), hashset< keyT, hasherT, setT >::table, hashset< keyT, hasherT, setT >::tableSize, and hashset< keyT, hasherT, setT >::vectorSize.

Referenced by hashset< keyT, hasherT, setT >::insert().

template<class keyT, class hasherT, class setT>
bool hashset< keyT, hasherT, setT >::remove keyT  x  )  [inline]
 

remove a key

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

Definition at line 173 of file hashset.h.

References hashset< keyT, hasherT, setT >::table, hashset< keyT, hasherT, setT >::tableSize, and hashset< keyT, hasherT, setT >::vectorSize.

Referenced by hashset< keyT, hasherT, setT >::erase().

template<class keyT, class hasherT, class setT>
unsigned int hashset< keyT, hasherT, setT >::size  )  const [inline]
 

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

Definition at line 123 of file hashset.h.

References hashset< keyT, hasherT, setT >::tableSize.


Member Data Documentation

template<class keyT, class hasherT, class setT>
unsigned int hashset< keyT, hasherT, setT >::loadFactor [protected]
 

load factor controls how the rehash condition will be set.

Definition at line 203 of file hashset.h.

Referenced by hashset< keyT, hasherT, setT >::hashset(), and hashset< keyT, hasherT, setT >::needToRehash().

template<class keyT, class hasherT, class setT>
hash_array hashset< keyT, hasherT, setT >::table [protected]
 

array that hold the actual values

Definition at line 197 of file hashset.h.

Referenced by hashset< keyT, hasherT, setT >::begin(), hashset< keyT, hasherT, setT >::end(), hashset< keyT, hasherT, setT >::find(), hashset< keyT, hasherT, setT >::hashset(), hashset< keyT, hasherT, setT >::insert(), hashset< keyT, hasherT, setT >::rehash(), and hashset< keyT, hasherT, setT >::remove().

template<class keyT, class hasherT, class setT>
unsigned int hashset< keyT, hasherT, setT >::tableSize [protected]
 

number of elements

Definition at line 201 of file hashset.h.

Referenced by hashset< keyT, hasherT, setT >::hashset(), hashset< keyT, hasherT, setT >::insert(), hashset< keyT, hasherT, setT >::needToRehash(), hashset< keyT, hasherT, setT >::rehash(), hashset< keyT, hasherT, setT >::remove(), and hashset< keyT, hasherT, setT >::size().

template<class keyT, class hasherT, class setT>
unsigned int hashset< keyT, hasherT, setT >::vectorSize [protected]
 

size of the vector

Definition at line 199 of file hashset.h.

Referenced by hashset< keyT, hasherT, setT >::find(), hashset< keyT, hasherT, setT >::hashset(), hashset< keyT, hasherT, setT >::insert(), hashset< keyT, hasherT, setT >::needToRehash(), hashset< keyT, hasherT, setT >::rehash(), and hashset< keyT, hasherT, setT >::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