Home2L - C/C++ API v1.4-0-g38cc (2024-05-25)
Smart Tools for a Private Home
List of all members
CDictCompact< T > Class Template Reference

Description

template<typename T>
class CDictCompact< T >

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.

Definition at line 1250 of file base.H.

#include "base.H"

Inheritance diagram for CDictCompact< T >:
Inheritance graph
[legend]

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).
 

Member Function Documentation

◆ Set()

template<typename T >
int CDictCompact< T >::Set ( const char *  key,
T *  value 
)
inline

Add or replace the keyed entry. Complexity is O(n).

Returns
Index of new entry

Definition at line 1264 of file base.H.

◆ Merge()

template<typename T >
void CDictCompact< T >::Merge ( CDictCompact< T > *  dict2)
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'.

Definition at line 1270 of file base.H.


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