CMapStringToOb Class

A dictionary collection class that maps unique CString objects to CObject pointers.

class CMapStringToOb : public CObject




Returns the number of elements in this map.


Determines the current number of elements in the hash table.


Gets the next element for iterating.


Returns the number of elements in this map.


Returns the position of the first element.


Calculates the hash value of a specified key.


Initializes the hash table.


Tests for the empty-map condition (no elements).


Looks up a void pointer based on the void pointer key. The pointer value, not the entity it points to, is used for the key comparison.


Returns a reference to the key associated with the specified key value.


Removes all the elements from this map.


Removes an element specified by a key.


Inserts an element into the map; replaces an existing element if a matching key is found.



CMapStringToOb::operator [ ]

Inserts an element into the map — operator substitution for SetAt.

Once you have inserted a CString-CObject* pair (element) into the map, you can efficiently retrieve or delete the pair using a string or a CString value as a key. You can also iterate over all the elements in the map.

A variable of type POSITION is used for alternate entry access in all map variations. You can use a POSITION to "remember" an entry and to iterate through the map. You might think that this iteration is sequential by key value; it is not. The sequence of retrieved elements is indeterminate.

CMapStringToOb incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. Each element is serialized in turn if a map is stored to an archive, either with the overloaded insertion (<<) operator or with the Serialize member function.

If you need a diagnostic dump of the individual elements in the map (the CString value and the CObject contents), you must set the depth of the dump context to 1 or greater.

When a CMapStringToOb object is deleted, or when its elements are removed, the CString objects and the CObject pointers are removed. The objects referenced by the CObject pointers are not destroyed.

Map class derivation is similar to list derivation. See the article Collections for an illustration of the derivation of a special-purpose list class.

Header: afxcoll.h