template<typename, typename, typename, typename>
class Geo::GeoHashMap
The hash table.
It's a straight forward key/value hash table where every key has one associated value (so it's a hash map, rather than a hash multi map).
Typedefs
Name | Description |
---|---|
GeoHashConstHandle< GeoHashMap > ConstHandle | A const handle to an entry in the container. |
const DataType & DataParamType | The Data type stored internally when passed as a parameter. |
GeoPair< KeyType, ValueType > DataType | The Data type stored internally. |
GeoHashHandle< GeoHashMap > Handle | A handle to an entry in the container. |
tHashFunctor HashFunctor | The specified Hash Functor type. |
tKeyCmp KeyCompareFunctor | The specified Key Compare type. |
const KeyType & KeyParamType | The Key type when passed as a parameter. |
tKey KeyType | The specified Key type. |
const ValueType & ValueParamType | The Value type when passed as a parameter. |
tValue ValueType | The specified Value type. |
Variables
Name | Description |
---|---|
const u32 MemoryAlignment = GEO_ALIGN_OF(DataType) > GEO_ALIGN_OF(u32) ? GEO_ALIGN_OF(DataType) : GEO_ALIGN_OF(u32) | The required alignment of the memory block passed to the appropriate GeoHashMap constructor. |
Functions
Name | Description |
---|---|
~GeoHashMap() | Delete. |
CalcMemoryUsage(u32) | Gets the amount of memory (in bytes) required by a GeoHashMap with the given capacity. |
Clear() | Clears the table. |
Exists(KeyParamType) | This returns true if the key exists. |
GeoHashMap(u32, float, HashFunctor, KeyCompareFunctor) | Construct a hash table. |
GeoHashMap(void *, u32, HashFunctor, KeyCompareFunctor) | Construct a hash table using the given block of memory for storage. The given block must be at least the size returned by CalcMemoryUsage() and be 4-byte aligned. |
GeoHashMap(const GeoHashMap &) | Copy-constructor. |
GeoHashMap(GeoHashMap &&) | Move constructor. |
operator=(const GeoHashMap &) | Assignment operator. |
operator=(GeoHashMap &&) | Move assignment operator. |
Remove(KeyParamType) | Removes the key/value pair indexed by this key. |
Remove(Handle) | Removes the key/value pair reference by the handle. |
Swap(GeoHashMap &) | Swap places with another table. |
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::~GeoHashMap
...
public: ~GeoHashMap()
...
Delete.
This will erase everything from the table.
Warning | ||
---|---|---|
| ||
Invalidates all existing handles. |
Anchor | ||||
---|---|---|---|---|
|
static u32 Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::CalcMemoryUsage
...
public: u32 CalcMemoryUsage
(
u32 capacity
)
...
Gets the amount of memory (in bytes) required by a GeoHashMap with the given capacity.
This is the size of the memory block which must be passed to the appropriate GeoHashMap constructor.
Anchor | ||||
---|---|---|---|---|
|
void Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::Clear
...
public: void Clear()
...
Clears the table.
Warning | ||
---|---|---|
| ||
Invalidates all existing handles. |
Anchor | ||||
---|---|---|---|---|
|
bool Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::Exists
...
public: bool Exists
(
KeyParamType key
) const
...
This returns true if the key exists.
Note | ||
---|---|---|
| ||
If you intend to access the value if it does exist it's more efficient to use Find(). |
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::GeoHashMap
...
public: GeoHashMap
(
u32 capacity,
float loadLimit,
HashFunctor h,
KeyCompareFunctor cmp
)
...
Construct a hash table.
The last two parameters are optional and you won't need to specify them unless you are using a non-default hash or key compare functor that needs to be constructed with something other than the default constructor.
Parameters
[in] | capacity | This is the minimum size of the table. |
[in] | loadLimit | The load factor at which the table will grow (recommended value: 0.5. Specifying zero disables growth) |
[in] | h | The hashing function (can be ignored) |
[in] | cmp | The key comparison function (can be ignored) |
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::GeoHashMap
...
public: GeoHashMap
(
void * memory,
u32 capacity,
HashFunctor h,
KeyCompareFunctor cmp
)
...
Construct a hash table using the given block of memory for storage. The given block must be at least the size returned by CalcMemoryUsage() and be 4-byte aligned.
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::GeoHashMap
...
public: GeoHashMap
(
const GeoHashMap & rhs
)
...
Copy-constructor.
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::GeoHashMap
...
public: GeoHashMap
(
GeoHashMap && rhs
)
...
Move constructor.
Anchor | ||||
---|---|---|---|---|
|
GeoHashMap& Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::operator=
...
public: GeoHashMap & operator=
(
const GeoHashMap & rhs
)
...
Assignment operator.
Warning | ||
---|---|---|
| ||
Invalidates all existing handles. |
Anchor | ||||
---|---|---|---|---|
|
GeoHashMap& Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::operator=
...
public: GeoHashMap & operator=
(
GeoHashMap && rhs
)
...
Move assignment operator.
Warning | ||
---|---|---|
| ||
Invalidates all existing handles. |
Anchor | ||||
---|---|---|---|---|
|
bool Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::Remove
...
public: bool Remove
(
KeyParamType key
)
...
Removes the key/value pair indexed by this key.
Returns
Returns true if the key was found and removed, otherwise false if the key doesn't exist.
Warning | ||
---|---|---|
| ||
Invalidates all existing handles. |
Anchor | ||||
---|---|---|---|---|
|
void Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::Remove
...
public: void Remove
(
Handle h
)
...
Removes the key/value pair reference by the handle.
Warning | ||
---|---|---|
| ||
Invalidates all existing handles. |
Anchor | ||||
---|---|---|---|---|
|
void Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::Swap
...
public: void Swap
(
GeoHashMap & other
)
...
Swap places with another table.
Warning | ||
---|---|---|
| ||
Invalidates all existing handles. |