Loading...
Searching...
No Matches
DataHashTable< HashItem, Info > Class Template Reference Generic hash table for data objects. More...
Detailed Descriptiontemplate<class HashItem, class Info> class soplex::DataHashTable< HashItem, Info > Generic hash table for data objects. Class DataHashTable provides a generic hash table for Data Objects, i.e., a map that maps arguments called HashItems to values called Infos. HashItem and Info types are passed as template arguments. HashItems must provide a comparison operator==(). Furthermore, both the HashItem and Info must be data objects in the sense that the assignment operator is equivalent to a The construction of a DataHashTable requires a hash function that assigns an integer value to every HashItem. Provided this, pairs of a HashItem and a Info can be added to the DataHashTable. No more than one Info can be assigned to the same HashItem at a time. The Info to a HashItem can be accessed through the subscript operator[]() with the Info object as a subscript. The maximum number of elemens a DataHashTable can hold can be specified upon construction and may be reset with reMax() later on. Further, a value hash size value is required. This value must be less then the maximum number of elements and must not have a common dominator with the maximum number of elements. If not specified explicitely, it is set automatically to a reasonable value. The implementation relies on an array of DataHashTable::Elements, from now on referred to as elements. Upon construction, all elements are marked as Removing elements is simply done by marking it as Further, memory management with resizing of the element array is straight forward. Definition at line 88 of file datahashtable.h. Member Typedef Documentation◆ ElemDefinition at line 112 of file datahashtable.h. Constructor & Destructor Documentation◆ DataHashTable() [1/2]
template<class HashItem, class Info>
default constructor. Allocates a DataHashTable for
Definition at line 293 of file datahashtable.h. References autoHashSize(), clear(), isConsistent(), m_elem, m_hashfun, m_hashsize, m_memfactor, nprimes, and primes. Referenced by DataHashTable(), and operator=(). ◆ DataHashTable() [2/2]
template<class HashItem, class Info>
copy constructor. Definition at line 372 of file datahashtable.h. References DataHashTable(), isConsistent(), m_elem, m_hashfun, m_hashsize, m_memfactor, m_used, nprimes, and primes. Member Function Documentation◆ add()
template<class HashItem, class Info>
adds a new entry to the hash table. Adds a new entry consisting of HashItem Definition at line 177 of file datahashtable.h. References has(), m_elem, m_hashfun, m_hashsize, m_memfactor, m_used, reMax(), SOPLEX_HASHTABLE_FILLFACTOR, and DataHashTable< HashItem, Info >::Element< HashItem, Info >::USED. Referenced by reMax(). ◆ autoHashSize()
template<class HashItem, class Info>
determine a good m_hashsize. Determine next larger prime number for new m_hashsize
Definition at line 395 of file datahashtable.h. References m_elem, nprimes, and primes. Referenced by DataHashTable(), and reMax(). ◆ autoHashSizeold()
template<class HashItem, class Info>
automatically computes a good m_hashsize. Computes a good m_hashsize as the product of all prime numbers not divisors of the number of elements that are <= the maximum divisor of the number of elemens.
Definition at line 432 of file datahashtable.h. References m_elem. ◆ clear()
template<class HashItem, class Info>
remove all entries from DataHashTable. Definition at line 218 of file datahashtable.h. References DataHashTable< HashItem, Info >::Element< HashItem, Info >::FREE, m_elem, and m_used. Referenced by DataHashTable(), and reMax(). ◆ get()
template<class HashItem, class Info>
returns const pointer to Info of HashItem Returns a pointer to Info component of hash element Definition at line 151 of file datahashtable.h. ◆ has()
template<class HashItem, class Info>
Is item Definition at line 141 of file datahashtable.h. References index(). Referenced by add(), isConsistent(), operator[](), and remove(). ◆ index()
template<class HashItem, class Info>
returns hash index of HashItem Using the hash function m_hashfun, the hash value of
Definition at line 475 of file datahashtable.h. References DataHashTable< HashItem, Info >::Element< HashItem, Info >::FREE, m_elem, m_hashsize, m_used, and DataHashTable< HashItem, Info >::Element< HashItem, Info >::USED. Referenced by get(), has(), operator[](), and remove(). ◆ isConsistent()
template<class HashItem, class Info>
checks whether DataHashTable is consistent Definition at line 251 of file datahashtable.h. References has(), m_elem, m_used, SPX_MSG_INCONSISTENT, and DataHashTable< HashItem, Info >::Element< HashItem, Info >::USED. Referenced by DataHashTable(), DataHashTable(), and operator=(). ◆ operator=()
template<class HashItem, class Info>
assignment operator. Definition at line 356 of file datahashtable.h. References DataHashTable(), isConsistent(), m_elem, m_hashfun, m_hashsize, m_memfactor, m_used, nprimes, and primes. ◆ operator[]()
template<class HashItem, class Info>
references Info of HashItem Index operator for accessing the Info associated to HashItem Definition at line 164 of file datahashtable.h. ◆ reMax()
template<class HashItem, class Info>
reset size of the DataHashTable. Reset the maximum number of elements of a DataHashTable to Definition at line 231 of file datahashtable.h. References add(), autoHashSize(), clear(), m_elem, m_hashsize, m_used, Array< T >::size(), and DataHashTable< HashItem, Info >::Element< HashItem, Info >::USED. Referenced by add(). ◆ remove()
template<class HashItem, class Info>
remove HashItem Definition at line 205 of file datahashtable.h. References has(), index(), m_elem, m_used, and DataHashTable< HashItem, Info >::Element< HashItem, Info >::RELEASED. Member Data Documentation◆ m_elemstores all elements of the hash table Definition at line 119 of file datahashtable.h. Referenced by add(), autoHashSize(), autoHashSizeold(), clear(), DataHashTable(), DataHashTable(), get(), index(), isConsistent(), operator=(), operator[](), reMax(), and remove(). ◆ m_hashfun
template<class HashItem, class Info>
pointer to hash function (mapping: HashItem -> int) Definition at line 125 of file datahashtable.h. Referenced by add(), DataHashTable(), DataHashTable(), and operator=(). ◆ m_hashsize
template<class HashItem, class Info>
increment added to hash index, if allready used Definition at line 121 of file datahashtable.h. Referenced by add(), DataHashTable(), DataHashTable(), index(), operator=(), and reMax(). ◆ m_memfactor
template<class HashItem, class Info>
memory is reMax()ed by this factor if a new element does't fit Definition at line 127 of file datahashtable.h. Referenced by add(), DataHashTable(), DataHashTable(), and operator=(). ◆ m_used
template<class HashItem, class Info>
current number of entries in the hash table Definition at line 123 of file datahashtable.h. Referenced by add(), clear(), DataHashTable(), index(), isConsistent(), operator=(), reMax(), and remove(). ◆ nprimes
template<class HashItem, class Info>
number of stored prime numbers Definition at line 131 of file datahashtable.h. Referenced by autoHashSize(), DataHashTable(), DataHashTable(), and operator=(). ◆ primes
template<class HashItem, class Info>
some prime numbers for fast access Definition at line 129 of file datahashtable.h. Referenced by autoHashSize(), DataHashTable(), DataHashTable(), and operator=().
|