Home2L - C/C++ API v1.4-0-g38cc (2024-05-25)
Smart Tools for a Private Home
|
Compact dictionary.
This class is similar to CDict, but stores the value objects in one big array and may therefore be more efficient in some cases. Also, The type 'T' must fullfill certain properties.
See CListCompact for details.
#include "base.H"
Public Member Functions | |
Read access ... | |
T * | Get (int idx) |
T * | Get (const char *key) |
T * | operator[] (int idx) |
T * | operator[] (const char *key) |
Write access ... | |
int | Set (const char *key, T *value) |
Add or replace the keyed entry. Complexity is O(n). More... | |
void | SetValue (int idx, T *value) |
Set (replace) a value. The entry must exist and 'idx' be valid. Complexity is O(1). | |
void | Merge (CDictCompact< T > *dict2) |
Merge another map into this one. Complexity is O(n_this + n_dict2). 'dict2' will be empty afterwards. More... | |
Public Member Functions inherited from CDictRaw | |
void | Del (int idx) |
Delete entry; complexity is O(n). More... | |
void | Del (const char *key) |
Delete entry by key; complexity is O(n). | |
const char * | GetKey (int idx) const |
Get key by index. | |
int | Find (const char *key, int *retInsIdx=NULL) |
Make binary search and return index of entry found or -1 if the key does not exist. If retInsIdx != NULL , the index to insert a new item is return in *retInsIdx . | |
void | PrefixSearch (const char *key, int *retIdx0, int *retIdx1) |
Determine all elements with keys starting with key . More... | |
virtual void | Dump (const char *name) |
Dump contents by means of INFO logs (for debugging) | |
Public Member Functions inherited from CListRaw | |
int | Entries () const |
Get number of entries. | |
void | Clear () |
Clear the list. | |
void | Del (int idx) |
Delete entry; complexity is O(n). | |
|
inline |
|
inline |
Merge another map into this one. Complexity is O(n_this + n_dict2). 'dict2' will be empty afterwards.
The recommended way to add a bunch of new entries to a dictionary is to first add them to a new dictionary and then use this method to merge them into 'this'.