Klasy te są zaimplementowane jako część obszernego tematu jakim są dynamiczne struktury danych. Wymienione w nagłówku klasy mają funkcje obsługi identyczne jak np. klasa CMapStringToString. Różnica tkwi w definiowaniu takich klas. Deklaracje klas wyprowadzaneych ze wzorców (templates) są sparametryzowane i tak:
a) CMap
CMap<"int, int, MY_STRUCT, MY_STRUCT&"> myMap1;
lub
CMap<"CString, LPCSTR, CPerson, CPerson&"> myMap2;
b) CTypedPtrMap
CTypedPtrMap<"CMapPtrToPtr, CString, MY_STRUCT*"> myPtrMap;
lub
CTypedPtrMap<"CMapStringToOb, CString, CMyObject*"> myObjectMap;