ezEngine  Milestone 9
ezMap< KeyType, ValueType, Comparer, AllocatorWrapper > Class Template Reference

#include <Map.h>

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

Public Member Functions

 ezMap (const Comparer &comparer, ezAllocatorBase *pAllocator)
 
 ezMap (const ezMap< KeyType, ValueType, Comparer, AllocatorWrapper > &other)
 
 ezMap (const ezMapBase< KeyType, ValueType, Comparer > &other)
 
void operator= (const ezMap< KeyType, ValueType, Comparer, AllocatorWrapper > &rhs)
 
void operator= (const ezMapBase< KeyType, ValueType, Comparer > &rhs)
 
- Public Member Functions inherited from ezMapBase< KeyType, ValueType, Comparer >
bool IsEmpty () const
 Returns whether there are no elements in the map. O(1) operation.
 
ezUInt32 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.
 
ConstIterator GetIterator () const
 Returns a constant Iterator to the very first element.
 
Iterator GetLastIterator ()
 Returns an Iterator to the very last element. For reverse traversal.
 
ConstIterator GetLastIterator () const
 Returns a constant Iterator to the very last element. For reverse traversal.
 
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 *bExisted=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 >
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.
 
ezAllocatorBaseGetAllocator () const
 Returns the allocator that is used by this instance.
 
bool operator== (const ezMapBase< KeyType, ValueType, Comparer > &rhs) const
 Comparison operator.
 
bool operator!= (const ezMapBase< KeyType, ValueType, Comparer > &rhs) const
 Comparison operator.
 
ezUInt64 GetHeapMemoryUsage () const
 Returns the amount of bytes that are currently allocated on the heap.
 
void Swap (ezMapBase< KeyType, ValueType, Comparer > &other)
 Swaps this map with the other one.
 
template<typename CompatibleKeyType >
EZ_ALWAYS_INLINE const ValueType * GetValue (const CompatibleKeyType &key) const
 
template<typename CompatibleKeyType >
EZ_ALWAYS_INLINE ValueType * GetValue (const CompatibleKeyType &key)
 
template<typename CompatibleKeyType >
EZ_ALWAYS_INLINE const ValueType & GetValueOrDefault (const CompatibleKeyType &key, const ValueType &defaultValue) const
 
template<typename CompatibleKeyType >
EZ_ALWAYS_INLINE ezMapBase< KeyType, ValueType, Comparer >::Iterator Find (const CompatibleKeyType &key)
 
template<typename CompatibleKeyType >
EZ_ALWAYS_INLINE ezMapBase< KeyType, ValueType, Comparer >::ConstIterator Find (const CompatibleKeyType &key) const
 
template<typename CompatibleKeyType >
EZ_ALWAYS_INLINE bool Contains (const CompatibleKeyType &key) const
 
template<typename CompatibleKeyType >
EZ_ALWAYS_INLINE ezMapBase< KeyType, ValueType, Comparer >::Iterator LowerBound (const CompatibleKeyType &key)
 
template<typename CompatibleKeyType >
EZ_ALWAYS_INLINE ezMapBase< KeyType, ValueType, Comparer >::ConstIterator LowerBound (const CompatibleKeyType &key) const
 
template<typename CompatibleKeyType >
EZ_ALWAYS_INLINE ezMapBase< KeyType, ValueType, Comparer >::Iterator UpperBound (const CompatibleKeyType &key)
 
template<typename CompatibleKeyType >
EZ_ALWAYS_INLINE ezMapBase< KeyType, ValueType, Comparer >::ConstIterator UpperBound (const CompatibleKeyType &key) const
 

Additional Inherited Members

- Protected Member Functions inherited from ezMapBase< KeyType, ValueType, Comparer >
 ezMapBase (const Comparer &comparer, ezAllocatorBase *pAllocator)
 Initializes the map to be empty.
 
 ezMapBase (const ezMapBase< KeyType, ValueType, Comparer > &cc, ezAllocatorBase *pAllocator)
 Copies all key/value pairs from the given map into this one.
 
 ~ezMapBase ()
 Destroys all elements from the map.
 
void operator= (const ezMapBase< 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 = ezCompareHelper<KeyType>, typename AllocatorWrapper = ezDefaultAllocatorWrapper>
class ezMap< KeyType, ValueType, Comparer, AllocatorWrapper >

See also
ezMapBase

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