|
| plHashTable (plAllocator *pAllocator) |
|
| plHashTable (const plHashTable< KeyType, ValueType, Hasher, AllocatorWrapper > &other) |
|
| plHashTable (const plHashTableBase< KeyType, ValueType, Hasher > &other) |
|
| plHashTable (plHashTable< KeyType, ValueType, Hasher, AllocatorWrapper > &&other) |
|
| plHashTable (plHashTableBase< KeyType, ValueType, Hasher > &&other) |
|
void | operator= (const plHashTable< KeyType, ValueType, Hasher, AllocatorWrapper > &rhs) |
|
void | operator= (const plHashTableBase< KeyType, ValueType, Hasher > &rhs) |
|
void | operator= (plHashTable< KeyType, ValueType, Hasher, AllocatorWrapper > &&rhs) |
|
void | operator= (plHashTableBase< KeyType, ValueType, Hasher > &&rhs) |
|
bool | operator== (const plHashTableBase< KeyType, ValueType, Hasher > &rhs) const |
| Compares this table to another table.
|
|
| PL_ADD_DEFAULT_OPERATOR_NOTEQUAL (const plHashTableBase< KeyType, ValueType, Hasher > &) |
|
void | Reserve (plUInt32 uiCapacity) |
| Expands the hashtable by over-allocating the internal storage so that the load factor is lower or equal to 60% when inserting the given number of entries.
|
|
void | Compact () |
| Tries to compact the hashtable to avoid wasting memory.
|
|
plUInt32 | GetCount () const |
| Returns the number of active entries in the table.
|
|
bool | IsEmpty () const |
| Returns true, if the hashtable does not contain any elements.
|
|
void | Clear () |
| Clears the table.
|
|
template<typename CompatibleKeyType , typename CompatibleValueType > |
bool | Insert (CompatibleKeyType &&key, CompatibleValueType &&value, ValueType *out_pOldValue=nullptr) |
| Inserts the key value pair or replaces value if an entry with the given key already exists.
|
|
template<typename CompatibleKeyType > |
bool | Remove (const CompatibleKeyType &key, ValueType *out_pOldValue=nullptr) |
| Removes the entry with the given key. Returns whether an entry was removed and optionally writes out the old value to out_oldValue.
|
|
Iterator | Remove (const Iterator &pos) |
| Erases the key/value pair at the given Iterator. Returns an iterator to the element after the given iterator.
|
|
void | Remove (const ConstIterator &pos)=delete |
| Cannot remove an element with just a plHashTableBaseConstIterator.
|
|
template<typename CompatibleKeyType > |
bool | TryGetValue (const CompatibleKeyType &key, ValueType &out_value) const |
| Returns whether an entry with the given key was found and if found writes out the corresponding value to out_value.
|
|
template<typename CompatibleKeyType > |
bool | TryGetValue (const CompatibleKeyType &key, const ValueType *&out_pValue) const |
| Returns whether an entry with the given key was found and if found writes out the pointer to the corresponding value to out_pValue.
|
|
template<typename CompatibleKeyType > |
bool | TryGetValue (const CompatibleKeyType &key, ValueType *&out_pValue) const |
| Returns whether an entry with the given key was found and if found writes out the pointer to the corresponding value to out_pValue.
|
|
template<typename CompatibleKeyType > |
ConstIterator | Find (const CompatibleKeyType &key) const |
| Searches for key, returns a plHashTableBaseConstIterator to it or an invalid iterator, if no such key is found. O(1) operation.
|
|
template<typename CompatibleKeyType > |
Iterator | Find (const CompatibleKeyType &key) |
| Searches for key, returns an Iterator to it or an invalid iterator, if no such key is found. O(1) operation.
|
|
template<typename CompatibleKeyType > |
const ValueType * | GetValue (const CompatibleKeyType &key) const |
| Returns a pointer to the value of the entry with the given key if found, otherwise returns nullptr.
|
|
template<typename CompatibleKeyType > |
ValueType * | GetValue (const CompatibleKeyType &key) |
| Returns a pointer to the value of the entry with the given key if found, otherwise returns nullptr.
|
|
ValueType & | operator[] (const KeyType &key) |
| Returns the value to the given key if found or creates a new entry with the given key and a default constructed value.
|
|
ValueType & | FindOrAdd (const KeyType &key, bool *out_pExisted=nullptr) |
| Returns the value stored at the given key. If none exists, one is created. bExisted indicates whether an element needed to be created.
|
|
template<typename CompatibleKeyType > |
bool | Contains (const CompatibleKeyType &key) const |
| Returns if an entry with given key exists in the table.
|
|
Iterator | GetIterator () |
| Returns an Iterator to the very first element.
|
|
Iterator | GetEndIterator () |
| Returns an Iterator to the first element that is not part of the hash-table. Needed to support range based for loops.
|
|
ConstIterator | GetIterator () const |
| Returns a constant Iterator to the very first element.
|
|
ConstIterator | GetEndIterator () const |
| Returns a plHashTableBaseConstIterator to the first element that is not part of the hash-table. Needed to support range based for loops.
|
|
plAllocator * | GetAllocator () const |
| Returns the allocator that is used by this instance.
|
|
plUInt64 | GetHeapMemoryUsage () const |
| Returns the amount of bytes that are currently allocated on the heap.
|
|
void | Swap (plHashTableBase< KeyType, ValueType, Hasher > &other) |
| Swaps this map with the other one.
|
|
template<typename CompatibleKeyType , typename CompatibleValueType > |
bool | Insert (CompatibleKeyType &&key, CompatibleValueType &&value, V *out_pOldValue) |
|
template<typename CompatibleKeyType > |
bool | Remove (const CompatibleKeyType &key, V *out_pOldValue) |
|
template<typename CompatibleKeyType > |
bool | TryGetValue (const CompatibleKeyType &key, V &out_value) const |
|
template<typename CompatibleKeyType > |
bool | TryGetValue (const CompatibleKeyType &key, const V *&out_pValue) const |
|
template<typename CompatibleKeyType > |
bool | TryGetValue (const CompatibleKeyType &key, V *&out_pValue) const |
|
template<typename CompatibleKeyType > |
const V * | GetValue (const CompatibleKeyType &key) const |
|
template<typename CompatibleKeyType > |
V * | GetValue (const CompatibleKeyType &key) |
|
template<typename CompatibleKeyType > |
PL_FORCE_INLINE bool | Contains (const CompatibleKeyType &key) const |
|
template<typename CompatibleKeyType > |
PL_ALWAYS_INLINE plUInt32 | FindEntry (const CompatibleKeyType &key) const |
|
template<typename KeyType, typename ValueType, typename Hasher = plHashHelper<KeyType>, typename AllocatorWrapper = plDefaultAllocatorWrapper>
class plHashTable< KeyType, ValueType, Hasher, AllocatorWrapper >
- See also
- plHashTableBase