»
Symbian OS v9.3 »
Symbian OS reference »
C++ component reference »
Base E32_EKA2 »
RHashMap
This item is not part of the S60 3rd Edition SDK for Symbian OS, Feature Pack 2.
class RHashMap : public RHashTableBase;
Description
A templated class which implements an associative array with key type K and value type V, using a probe-sequence hash table.
Both the key and value objects are copied into the table when they are added. A bitwise binary copy is used here, so neither
of the types K and V may implement a nontrivial copy constructor.
Derivation
RHashTableBase
- No description.
RHashMap
- A templated class which implements an associative array with key type K and value type V, using a probe-sequence hash table
Members
Defined in RHashMap
:
Close()
, Count()
, Find()
, Find()
, FindL()
, FindL()
, Insert()
, InsertL()
, RHashMap()
, RHashMap()
, Remove()
, Reserve()
, ReserveL()
, TIter
Construction and destruction
inline RHashMap(const THashFunction32< K > &aHash, const TIdentityRelation< K > &aIdentity);
Description
Construct an associative array of key-value pairs of type (K,V) using a specified hash function and identity relation. The
array initially contains no key-value pairs.
Parameters
const THashFunction32 < K > &aHash |
The hash function used to hash the key objects of type K.
|
const TIdentityRelation < K > &aIdentity |
The identity relation used to determine if two key objects of type K should be considered identical.
|
|
inline RHashMap();
Description
Construct an associative array of key-value pairs of type (K,V) using a default hash function and identity relation. The array
initially contains no key-value pairs.
inline void Close();
Description
Free all memory used by this array. Returns the array to the same state it had following construction.
inline const V *Find(const K &aKey) const;
Description
Look up a specified key in the associative array and return a pointer to the corresponding value.
Parameters
const K &aKey |
The key object of type K to look up.
|
|
Return value
const V * |
A pointer to the copy of the corresponding value object in the array, if the specified key object was found. The value object
may not be modified via this pointer. NULL if the specified key object was not found.
|
|
inline const V &FindL(const K &aKey) const;
Description
Look up a specified key in the associative array and return a pointer to the corresponding value.
Parameters
const K &aKey |
The key object of type K to look up.
|
|
Return value
const V & |
A reference to the copy of the corresponding value object in the array, if the specified key object was found. The value object
may not be modified via this reference.
|
|
Leave codes
KErrNotFound |
if the specified key object was not found.
|
|
inline V *Find(const K &aKey);
Description
Look up a specified key in the associative array and return a pointer to the corresponding value.
Parameters
const K &aKey |
The key object of type K to look up.
|
|
Return value
V * |
A pointer to the copy of the corresponding value object in the array, if the specified key object was found. The value object
may be modified via this pointer. NULL if the specified key object was not found.
|
|
inline V &FindL(const K &aKey);
Description
Look up a specified key in the associative array and return a pointer to the corresponding value.
Parameters
const K &aKey |
The key object of type K to look up.
|
|
Return value
V & |
A reference to the copy of the corresponding value object in the array, if the specified key object was found. The value object
may be modified via this reference.
|
|
Leave codes
KErrNotFound |
if the specified key object was not found.
|
|
inline TInt Insert(const K &aKey, const V &aValue);
Description
Insert a key-value pair into the array.
If the specified key object is not found in the array, a copy of the key object along with a copy of the value object are
added to the array and KErrNone is returned. If the specified key object is found in the array, the existing copies of both
the key and value objects are replaced by the provided objects and KErrNone is returned. In both cases the objects are copied
bitwise into the array.
Parameters
const K &aKey |
The key object of type K to add to the array.
|
const V &aValue |
The value object of type V to associate with aKey.
|
|
Return value
TInt
|
KErrNone if the key-value pair was added successfully. KErrNoMemory if memory could not be allocated to store the copies of
aKey and aValue.
|
|
inline void InsertL(const K &aKey, const V &aValue);
Description
Insert a key-value pair into the array.
If the specified key object is not found in the array, a copy of the key object along with a copy of the value object are
added to the array and KErrNone is returned. If the specified key object is found in the array, the existing copies of both
the key and value objects are replaced by the provided objects and KErrNone is returned. In both cases the objects are copied
bitwise into the array.
Parameters
const K &aKey |
The key object of type K to add to the array.
|
const V &aValue |
The value object of type V to associate with aKey.
|
|
Leave codes
KErrNoMemory |
if memory could not be allocated to store the copies of aKey and aValue.
|
|
inline TInt Remove(const K &aKey);
Description
Remove a key-value pair from the array.
Parameters
const K &aKey |
The key to be removed.
|
|
Return value
TInt
|
KErrNone if the key object and corresponding value object were removed successfully. KErrNotFound if the key object was not
present in the array.
|
|
inline TInt Count() const;
Description
Query the number of key-value pairs in the array.
Return value
TInt
|
The number of key-value pairs currently in the array.
|
|
inline TInt Reserve(TInt aCount);
Description
Expand the array to accommodate a specified number of key-value pairs. If the set already has enough space for the specified
number of elements, no action is taken. Any elements already in the set are retained.
Parameters
TInt aCount |
The number of key-value pairs for which space should be allocated.
|
|
Return value
TInt
|
KErrNone if the operation completed successfully. KErrNoMemory if sufficient memory could not be allocated.
|
|
inline void ReserveL(TInt aCount);
Description
Expand the array to accommodate a specified number of key-value pairs. If the set already has enough space for the specified
number of elements, no action is taken. Any elements already in the set are retained.
Parameters
TInt aCount |
The number of key-value pairs for which space should be allocated.
|
|
Leave codes
KErrNoMemory |
if sufficient memory could not be allocated.
|
|
typedef THashMapIter<K,V> RHashMap< K, V >::TIter;
Description
A class which allows iteration over the elements of a RHashMap<K,V> class.
The array being iterated over may not be modified while an iteration is in progress or the iteration operations may malfunction
or panic.