Plasma Engine  2.0
Loading...
Searching...
No Matches
plMap< KeyType, ValueType, Comparer, AllocatorWrapper > Class Template Reference

#include <Map.h>

Inheritance diagram for plMap< KeyType, ValueType, Comparer, AllocatorWrapper >:

Public Member Functions

 plMap (plAllocator *pAllocator)
 
 plMap (const Comparer &comparer, plAllocator *pAllocator)
 
 plMap (const plMap< KeyType, ValueType, Comparer, AllocatorWrapper > &other)
 
 plMap (const plMapBase< KeyType, ValueType, Comparer > &other)
 
void operator= (const plMap< KeyType, ValueType, Comparer, AllocatorWrapper > &rhs)
 
void operator= (const plMapBase< KeyType, ValueType, Comparer > &rhs)
 
- Public Member Functions inherited from plMapBase< KeyType, ValueType, Comparer >
bool IsEmpty () const
 Returns whether there are no elements in the map. O(1) operation.
 
plUInt32 GetCount () const
 Returns the number of elements currently stored in the map. O(1) operation.
 
void Clear ()
 Destroys all elements in the map and resets its size to zero.
 
Iterator GetIterator ()
 Returns an Iterator to the very first element.
 
ReverseIterator GetReverseIterator ()
 Returns a ReverseIterator to the very last element.
 
ConstIterator GetIterator () const
 Returns a constant Iterator to the very first element.
 
ConstReverseIterator GetReverseIterator () const
 Returns a constant ReverseIterator to the very last element.
 
template<typename CompatibleKeyType , typename CompatibleValueType >
Iterator Insert (CompatibleKeyType &&key, CompatibleValueType &&value)
 Inserts the key/value pair into the tree and returns an Iterator to it. O(log n) operation.
 
template<typename CompatibleKeyType >
bool Remove (const CompatibleKeyType &key)
 Erases the key/value pair with the given key, if it exists. O(log n) operation.
 
Iterator Remove (const Iterator &pos)
 Erases the key/value pair at the given Iterator. O(log n) operation. Returns an iterator to the element after the given iterator.
 
template<typename CompatibleKeyType >
Iterator FindOrAdd (CompatibleKeyType &&key, bool *out_pExisted=nullptr)
 Searches for the given key and returns an iterator to it. If it did not exist yet, it is default-created. bExisted is set to true, if the key was found, false if it needed to be created.
 
template<typename CompatibleKeyType >
ValueType & operator[] (const CompatibleKeyType &key)
 Allows read/write access to the value stored under the given key. If there is no such key, a new element is default-constructed.
 
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 >
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.
 
template<typename CompatibleKeyType >
const ValueType & GetValueOrDefault (const CompatibleKeyType &key, const ValueType &defaultValue) const
 Either returns the value of the entry with the given key, if found, or the provided default value.
 
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(log n) operation.
 
template<typename CompatibleKeyType >
Iterator LowerBound (const CompatibleKeyType &key)
 Returns an Iterator to the element with a key equal or larger than the given key. Returns an invalid iterator, if there is no such element.
 
template<typename CompatibleKeyType >
Iterator UpperBound (const CompatibleKeyType &key)
 Returns an Iterator to the element with a key that is LARGER than the given key. Returns an invalid iterator, if there is no such element.
 
template<typename CompatibleKeyType >
ConstIterator Find (const CompatibleKeyType &key) const
 Searches for key, returns an Iterator to it or an invalid iterator, if no such key is found. O(log n) operation.
 
template<typename CompatibleKeyType >
bool Contains (const CompatibleKeyType &key) const
 Checks whether the given key is in the container.
 
template<typename CompatibleKeyType >
ConstIterator LowerBound (const CompatibleKeyType &key) const
 Returns an Iterator to the element with a key equal or larger than the given key. Returns an invalid iterator, if there is no such element.
 
template<typename CompatibleKeyType >
ConstIterator UpperBound (const CompatibleKeyType &key) const
 Returns an Iterator to the element with a key that is LARGER than the given key. Returns an invalid iterator, if there is no such element.
 
plAllocatorGetAllocator () const
 Returns the allocator that is used by this instance.
 
bool operator== (const plMapBase< KeyType, ValueType, Comparer > &rhs) const
 Comparison operator.
 
 PL_ADD_DEFAULT_OPERATOR_NOTEQUAL (const plMapBase< KeyType, ValueType, Comparer > &)
 
plUInt64 GetHeapMemoryUsage () const
 Returns the amount of bytes that are currently allocated on the heap.
 
void Swap (plMapBase< KeyType, ValueType, Comparer > &other)
 Swaps this map with the other one.
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE bool TryGetValue (const CompatibleKeyType &key, ValueType &out_value) const
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE bool TryGetValue (const CompatibleKeyType &key, const ValueType *&out_pValue) const
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE bool TryGetValue (const CompatibleKeyType &key, ValueType *&out_pValue) const
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE const ValueType * GetValue (const CompatibleKeyType &key) const
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE ValueType * GetValue (const CompatibleKeyType &key)
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE const ValueType & GetValueOrDefault (const CompatibleKeyType &key, const ValueType &defaultValue) const
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE plMapBase< KeyType, ValueType, Comparer >::Iterator Find (const CompatibleKeyType &key)
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE plMapBase< KeyType, ValueType, Comparer >::ConstIterator Find (const CompatibleKeyType &key) const
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE bool Contains (const CompatibleKeyType &key) const
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE plMapBase< KeyType, ValueType, Comparer >::Iterator LowerBound (const CompatibleKeyType &key)
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE plMapBase< KeyType, ValueType, Comparer >::ConstIterator LowerBound (const CompatibleKeyType &key) const
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE plMapBase< KeyType, ValueType, Comparer >::Iterator UpperBound (const CompatibleKeyType &key)
 
template<typename CompatibleKeyType >
PL_ALWAYS_INLINE plMapBase< KeyType, ValueType, Comparer >::ConstIterator UpperBound (const CompatibleKeyType &key) const
 

Additional Inherited Members

- Public Types inherited from plMapBase< KeyType, ValueType, Comparer >
using ConstIterator = plMapBaseConstIteratorBase<KeyType, ValueType, Comparer, false>
 
using ConstReverseIterator = plMapBaseConstIteratorBase<KeyType, ValueType, Comparer, true>
 
using Iterator = plMapBaseIteratorBase<KeyType, ValueType, Comparer, false>
 
using ReverseIterator = plMapBaseIteratorBase<KeyType, ValueType, Comparer, true>
 
- Protected Member Functions inherited from plMapBase< KeyType, ValueType, Comparer >
 plMapBase (const Comparer &comparer, plAllocator *pAllocator)
 Initializes the map to be empty.
 
 plMapBase (const plMapBase< KeyType, ValueType, Comparer > &cc, plAllocator *pAllocator)
 Copies all key/value pairs from the given map into this one.
 
 ~plMapBase ()
 Destroys all elements from the map.
 
void operator= (const plMapBase< KeyType, ValueType, Comparer > &rhs)
 Copies all key/value pairs from the given map into this one.
 

Detailed Description

template<typename KeyType, typename ValueType, typename Comparer = plCompareHelper<KeyType>, typename AllocatorWrapper = plDefaultAllocatorWrapper>
class plMap< KeyType, ValueType, Comparer, AllocatorWrapper >
See also
plMapBase

The documentation for this class was generated from the following files: