Library: Foundation
Package: Hashing
Header: Poco/SimpleHashTable.h
Deprecated. This class is deprecated and should no longer be used.
A SimpleHashTable stores a key value pair that can be looked up via a hashed key.
In comparision to a HashTable, this class handles collisions by sequentially searching the next free location. This also means that the maximum size of this table is limited, i.e. if the hash table is full, it will throw an exception and that this class does not support remove operations. On the plus side it is faster than the HashTable.
This class is NOT thread safe.
Member Functions: SimpleHashTable, capacity, clear, currentState, exists, existsRaw, get, getKeyRaw, getRaw, hash, insert, insertRaw, operator =, operator [], resize, size, swap, update, updateRaw
typedef std::vector < HashEntry * > HashTableVector;
~SimpleHashTable();
Destroys the SimpleHashTable.
SimpleHashTable(
UInt32 capacity = 251
);
Creates the SimpleHashTable.
SimpleHashTable(
const SimpleHashTable & ht
);
UInt32 capacity() const;
void clear();
HashStatistic currentState(
bool details = false
) const;
Returns the current internal state
bool exists(
const Key & key
) const;
bool existsRaw(
const Key & key,
UInt32 hsh
) const;
const Value & get(
const Key & key
) const;
Throws an exception if the value does not exist
Value & get(
const Key & key
);
Throws an exception if the value does not exist
bool get(
const Key & key,
Value & v
) const;
Sets v to the found value, returns false if no value was found
const Key & getKeyRaw(
const Key & key,
UInt32 hsh
);
Throws an exception if the key does not exist. returns a reference to the internally stored key. Useful when someone does an insert and wants for performance reason only to store a pointer to the key in another collection
const Value & getRaw(
const Key & key,
UInt32 hsh
) const;
Throws an exception if the value does not exist
bool getRaw(
const Key & key,
UInt32 hsh,
Value & v
) const;
Sets v to the found value, returns false if no value was found
UInt32 hash(
const Key & key
) const;
UInt32 insert(
const Key & key,
const Value & value
);
Returns the hash value of the inserted item. Throws an exception if the entry was already inserted
Value & insertRaw(
const Key & key,
UInt32 hsh,
const Value & value
);
Returns the hash value of the inserted item. Throws an exception if the entry was already inserted
SimpleHashTable & operator = (
const SimpleHashTable & ht
);
const Value & operator[] (
const Key & key
) const;
Value & operator[] (
const Key & key
);
void resize(
UInt32 newSize
);
Resizes the hashtable, rehashes all existing entries. Expensive!
std::size_t size() const;
Returns the number of elements already inserted into the SimpleHashTable
void swap(
SimpleHashTable & ht
);
UInt32 update(
const Key & key,
const Value & value
);
Returns the hash value of the inserted item. Replaces an existing entry if it finds one
void updateRaw(
const Key & key,
UInt32 hsh,
const Value & value
);
Returns the hash value of the inserted item. Replaces an existing entry if it finds one