Teilen über


CMapStringToOb-Klasse

Eine Wörterbuchauflistungsklasse, die eindeutige CString -Objekte und CObject -Zeiger einander zuordnet.

Syntax

class CMapStringToOb : public CObject

Member

Öffentliche Konstruktoren

Name Beschreibung
CMapStringToOb::CMapStringToOb Konstruktor.

Öffentliche Methoden

Name Beschreibung
CMapStringToOb::GetCount Gibt die Anzahl der Elemente in dieser Karte zurück.
CMapStringToOb::GetHashTableSize Bestimmt die aktuelle Anzahl von Elementen in der Hashtabelle.
CMapStringToOb::GetNextAssoc Ruft das nächste Element zum Durchlaufen ab.
CMapStringToOb::GetSize Gibt die Anzahl der Elemente in dieser Karte zurück.
CMapStringToOb::GetStartPosition Gibt die Position des ersten Elements zurück.
CMapStringToOb::HashKey Berechnet den Hashwert eines angegebenen Schlüssels.
CMapStringToOb::InitHashTable Initialisiert die Hashtabelle.
CMapStringToOb::IsEmpty Testet auf die Bedingung für leere Karten (keine Elemente).
CMapStringToOb::Lookup Sucht einen leeren Zeiger basierend auf der leeren Zeigertaste. Der Zeigerwert, nicht die Entität, auf die er verweist, wird für den Schlüsselvergleich verwendet.
CMapStringToOb::LookupKey Gibt einen Verweis auf den Schlüssel zurück, der dem angegebenen Schlüsselwert zugeordnet ist.
CMapStringToOb::RemoveAll Entfernt alle Elemente aus dieser Karte.
CMapStringToOb::RemoveKey Entfernt ein durch einen Schlüssel angegebenes Element.
CMapStringToOb::SetAt Fügt ein Element in die Karte ein; ersetzt ein vorhandenes Element, wenn ein übereinstimmende Schlüssel gefunden wird.

Öffentliche Operatoren

Name Beschreibung
CMapStringToOb::operator [ ] Fügt ein Element in die Karte ein – Operatorenersetzung für SetAt.

Hinweise

Nachdem Sie ein CString- CObject* Paar (Element) in die Karte eingefügt haben, können Sie das Paar mithilfe einer Zeichenfolge oder eines CString Werts als Schlüssel effizient abrufen oder löschen. Sie können auch alle Elemente in der Karte durchlaufen.

Eine Variable vom Typ POSITION wird für den alternativen Eintragszugriff in allen Kartenvariationen verwendet. Sie können einen Eintrag verwenden, um einen POSITION Eintrag zu "speichern" und die Karte zu durchlaufen. Möglicherweise denken Sie, dass diese Iteration nach Schlüsselwert sequenziell ist; Es ist nicht. Die Abfolge der abgerufenen Elemente ist unbestimmt.

CMapStringToOb enthält das Makro zur Unterstützung der IMPLEMENT_SERIAL Serialisierung und des Dumpings seiner Elemente. Jedes Element wird wiederum serialisiert, wenn eine Zuordnung in einem Archiv gespeichert wird, entweder mit dem überladenen Einfügeoperator ( <<) oder mit der Serialize Memberfunktion.

Wenn Sie ein Diagnoseabbild der einzelnen Elemente in der Karte (den CString Wert und den CObject Inhalt) benötigen, müssen Sie die Tiefe des Dumpkontexts auf 1 oder höher festlegen.

Wenn ein CMapStringToOb Objekt gelöscht wird oder dessen Elemente entfernt werden, werden die CString Objekte und die CObject Zeiger entfernt. Die von den CObject Zeigern referenzierten Objekte werden nicht zerstört.

Die Zuordnung von Klassenableitungen ähnelt der Listenableitung. Eine Abbildung der Ableitung einer speziellen Listenklasse finden Sie im Artikel "Sammlungen ".

Vererbungshierarchie

CObject

CMapStringToOb

Anforderungen

Header: afxcoll.h

CMapStringToOb::CMapStringToOb

Erstellt eine leere CStringZuordnung CObject* .

CMapStringToOb(INT_PTR nBlockSize = 10);

Parameter

nBlockSize
Gibt die Granularität der Speicherzuweisung für die Erweiterung der Karte an.

Hinweise

Wenn die Karte wächst, wird Speicher in Einheiten von nBlockSize Einträgen zugeordnet.

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb:: CMapStringToOb.

Klasse Memberfunktion
CMapPtrToPtr CMapPtrToPtr( INT_PTR nBlockSize = 10 );
CMapPtrToWord CMapPtrToWord( INT_PTR nBlockSize = 10 );
CMapStringToPtr CMapStringToPtr( INT_PTR nBlockSize = 10 );
CMapStringToString CMapStringToString( INT_PTR nBlockSize = 10 );
CMapWordToOb CMapWordToOb( INT_PTR nBlockSize = 10 );
CMapWordToPtr MapWordToPtr( INT_PTR nBlockSize = 10 );

Beispiel

CMapStringToOb map(20); // Map on the stack with blocksize of 20

CMapStringToOb *pm = new CMapStringToOb; // Map on the heap
                                         // with default blocksize

Eine Auflistung der CAge Klasse finden Sie CObList::CObList in allen Auflistungsbeispielen.

CMapStringToOb::GetCount

Bestimmt, wie viele Elemente sich in der Karte befinden.

INT_PTR GetCount() const;

Rückgabewert

Die Anzahl der Elemente in dieser Karte.

Hinweise

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::GetCount.

Klasse Memberfunktion
CMapPtrToPtr INT_PTR GetCount() const;
CMapPtrToWord INT_PTR GetCount() const;
CMapStringToPtr INT_PTR GetCount() const;
CMapStringToString INT_PTR GetCount() const;
CMapWordToOb INT_PTR GetCount() const;
CMapWordToPtr INT_PTR GetCount() const;

Beispiel

Eine Auflistung der CAge Klasse finden Sie CObList::CObList in allen Auflistungsbeispielen.

CMapStringToOb map;

map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Homer"), new CAge(36));
ASSERT(map.GetCount() == 2);

CMapStringToOb::GetHashTableSize

Bestimmt die aktuelle Anzahl von Elementen in der Hashtabelle.

UINT GetHashTableSize() const;

Rückgabewert

Gibt die Anzahl der Elemente in der Hashtabelle zurück.

Hinweise

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::GetHashTableSize.

Klasse Memberfunktion
CMapPtrToPtr UINT GetHashTableSize() const;
CMapPtrToWord UINT GetHashTableSize() const;
CMapStringToPtr UINT GetHashTableSize() const;
CMapStringToString UINT GetHashTableSize() const;
CMapWordToOb UINT GetHashTableSize() const;
CMapWordToPtr UINT GetHashTableSize() const;

CMapStringToOb::GetNextAssoc

Ruft das Kartenelement an rNextPositionund aktualisiert rNextPosition dann, um auf das nächste Element in der Karte zu verweisen.

void GetNextAssoc(
    POSITION& rNextPosition,
    CString& rKey,
    CObject*& rValue) const;

Parameter

rNextPosition
Gibt einen Verweis auf einen POSITION-Wert an, der von einem vorherigen GetNextAssoc oder GetStartPosition Aufruf zurückgegeben wird.

rKey
Gibt den zurückgegebenen Schlüssel des abgerufenen Elements (eine Zeichenfolge) an.

rValue
Gibt den zurückgegebenen Wert des abgerufenen Elements (ein CObject Zeiger) an. Weitere Informationen zu diesem Parameter finden Sie in den Hinweisen .

Hinweise

Diese Funktion ist am nützlichsten für das Durchlaufen aller Elemente in der Karte. Beachten Sie, dass die Positionssequenz nicht unbedingt mit der Tastenwertsequenz identisch ist.

Wenn das abgerufene Element der letzte in der Karte ist, wird der neue Wert rNextPosition auf .NULL

Stellen Sie für den rValue Parameter sicher, dass Sie den Objekttyp CObject*&umwandeln, was der Compiler erfordert, wie im folgenden Beispiel gezeigt:

CObject *ob;
map.GetNextAssoc(pos, key, (CObject *&)ob);

Dies gilt GetNextAssoc nicht für Karten, die auf Vorlagen basieren.

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::GetNextAssoc.

Klasse Memberfunktion
CMapPtrToPtr void GetNextAssoc( POSITION& rNextPosition , void*& rKey , void*& rValue ) const;
CMapPtrToWord void GetNextAssoc( POSITION& rNextPosition , void*& rKey , WORD& rValue ) const;
CMapStringToPtr void GetNextAssoc( POSITION& rNextPosition , CString& rKey , void*& rValue ) const;
CMapStringToString void GetNextAssoc( POSITION& rNextPosition , CString& rKey , CString& rValue ) const;
CMapWordToOb void GetNextAssoc( POSITION& rNextPosition , WORD& rKey , CObject*& rValue ) const;
CMapWordToPtr void GetNextAssoc( POSITION& rNextPosition , WORD& rKey , void*& rValue ) const;

Beispiel

Eine Auflistung der CAge Klasse finden Sie CObList::CObList in allen Auflistungsbeispielen.

CMapStringToOb map;
POSITION pos;
CString key;
CAge *pa;

map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("Marge"), new CAge(35));
// Iterate through the entire map, dumping both name and age.
for (pos = map.GetStartPosition(); pos != NULL;)
{
   map.GetNextAssoc(pos, key, (CObject *&)pa);
#ifdef _DEBUG
   afxDump << key << _T(" : ") << pa << _T("\n");
#endif
}

Die Ergebnisse dieses Programms sind wie folgt:

Lisa : a CAge at $4724 11
Marge : a CAge at $47A8 35
Homer : a CAge at $4766 36
Bart : a CAge at $45D4 13

CMapStringToOb::GetSize

Gibt die Anzahl der Kartenelemente zurück.

INT_PTR GetSize() const;

Rückgabewert

Die Anzahl der Elemente in der Karte.

Hinweise

Rufen Sie diese Methode auf, um die Anzahl der Elemente in der Karte abzurufen.

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::GetSize.

Klasse Memberfunktion
CMapPtrToPtr INT_PTR GetSize() const;
CMapPtrToWord INT_PTR GetSize() const;
CMapStringToPtr INT_PTR GetSize() const;
CMapStringToString INT_PTR GetSize() const;
CMapWordToOb INT_PTR GetSize() const;
CMapWordToPtr INT_PTR GetSize() const;

Beispiel

CMapStringToOb map;

map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Homer"), new CAge(36));
ASSERT(map.GetSize() == 2);

CMapStringToOb::GetStartPosition

Startet eine Karteniteration, indem ein POSITION Wert zurückgegeben wird, der an einen GetNextAssoc Aufruf übergeben werden kann.

POSITION GetStartPosition() const;

Rückgabewert

Ein POSITION Wert, der eine Startposition für das Durchlaufen der Karte angibt oder NULL wenn die Karte leer ist.

Hinweise

Die Iterationssequenz ist nicht vorhersehbar; Daher hat das "erste Element in der Karte" keine besondere Bedeutung.

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::GetStartPosition.

Klasse Memberfunktion
CMapPtrToPtr POSITION GetStartPosition() const;
CMapPtrToWord POSITION GetStartPosition() const;
CMapStringToPtr POSITION GetStartPosition() const;
CMapStringToString POSITION GetStartPosition() const;
CMapWordToOb POSITION GetStartPosition() const;
CMapWordToPtr POSITION GetStartPosition() const;

Beispiel

Ein Beispiel hierfür finden Sie unter CMapStringToOb::GetNextAssoc.

CMapStringToOb::HashKey

Berechnet den Hashwert eines angegebenen Schlüssels.

UINT HashKey(LPCTSTR key) const;

Parameter

key
Der Schlüssel, dessen Hashwert berechnet werden soll.

Rückgabewert

Der Hashwert des Schlüssels

Hinweise

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::HashKey.

Klasse Memberfunktion
CMapPtrToPtr UINT HashKey( void *key ) const;
CMapPtrToWord UINT HashKey( void *key ) const;
CMapStringToString UINT HashKey( LPCTSTR key ) const;
CMapStringToPtr UINT HashKey( LPCTSTR key ) const;
CMapWordToOb UINT HashKey( WORD key ) const;
CMapWordToPtr UINT HashKey( WORD key ) const;

CMapStringToOb::InitHashTable

Initialisiert die Hashtabelle.

void InitHashTable(
    UINT hashSize,
    BOOL bAllocNow = TRUE);

Parameter

hashSize
Anzahl der Einträge in der Hashtabelle.

bAllocNow
Wenn TRUE, weist die Hashtabelle bei der Initialisierung zu. Andernfalls wird die Tabelle bei Bedarf zugewiesen.

Hinweise

Um eine optimale Leistung zu erzielen, sollte die Hashtabellengröße eine Primzahl sein. Um Kollisionen zu minimieren, sollte die Größe ungefähr 20 Prozent größer sein als der größte erwartete Datensatz.

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::InitHashTable.

Klasse Memberfunktion
CMapPtrToPtr void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE );
CMapPtrToWord void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE );
CMapStringToString void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE );
CMapStringToPtr void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE );
CMapWordToOb void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE );
CMapWordToPtr void InitHashTable( UINT hashSize , BOOL bAllocNow = TRUE );

CMapStringToOb::IsEmpty

Bestimmt, ob die Karte leer ist.

BOOL IsEmpty() const;

Rückgabewert

Nonzero, wenn diese Karte keine Elemente enthält; andernfalls 0.

Beispiel

Ein Beispiel hierfür finden Sie unter RemoveAll.

Hinweise

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb:: IsEmpty.

Klasse Memberfunktion
CMapPtrToPtr BOOL IsEmpty() const;
CMapPtrToWord BOOL IsEmpty() const;
CMapStringToPtr BOOL IsEmpty() const;
CMapStringToString BOOL IsEmpty() const;
CMapWordToOb BOOL IsEmpty() const;
CMapWordToPtr BOOL IsEmpty() const;

CMapStringToOb::Lookup

Gibt einen CObject Zeiger basierend auf einem CString Wert zurück.

BOOL Lookup(
    LPCTSTR key,
    CObject*& rValue) const;

Parameter

key
Gibt den Zeichenfolgenschlüssel an, der das element identifiziert, das nachschlagen soll.

rValue
Gibt den zurückgegebenen Wert aus dem Nachschlageelement an.

Rückgabewert

Nonzero, wenn das Element gefunden wurde; andernfalls 0.

Hinweise

Lookup verwendet einen Hashingalgorithmus, um das Kartenelement schnell mit einem Schlüssel zu finden, der exakt übereinstimmt ( CString Wert).

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::LookUp.

Klasse Memberfunktion
CMapPtrToPtr BOOL Lookup( void *key , void*& rValue ) const;
CMapPtrToWord BOOL Lookup( void *key , WORD& rValue ) const;
CMapStringToPtr BOOL Lookup( LPCTSTR key , void*& rValue ) const;
CMapStringToString BOOL Lookup( LPCTSTR key , CString& rValue ) const;
CMapWordToOb BOOL Lookup( WORD key , CObject*& rValue ) const;
CMapWordToPtr BOOL Lookup( WORD key , void*& rValue ) const;

Beispiel

Eine Auflistung der CAge Klasse finden Sie CObList::CObList in allen Auflistungsbeispielen.

CMapStringToOb map;
CAge *pa;

map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("Marge"), new CAge(35));
ASSERT(map.Lookup(_T("Lisa"), (CObject *&)pa)); // Is "Lisa" in the map?
ASSERT(*pa == CAge(11));                        // Is she 11?

CMapStringToOb::LookupKey

Gibt einen Verweis auf den Schlüssel zurück, der dem angegebenen Schlüsselwert zugeordnet ist.

BOOL LookupKey(
    LPCTSTR key,
    LPCTSTR& rKey) const;

Parameter

key
Gibt den Zeichenfolgenschlüssel an, der das element identifiziert, das nachschlagen soll.

rKey
Der Verweis auf den zugeordneten Schlüssel.

Rückgabewert

Nonzero, wenn der Schlüssel gefunden wurde; andernfalls 0.

Hinweise

Die Verwendung eines Verweises auf einen Schlüssel ist unsicher, wenn das zugeordnete Element aus der Karte entfernt wurde oder nachdem die Karte zerstört wurde.

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb:: LookupKey.

Klasse Memberfunktion
CMapStringToPtr BOOL LookupKey( LPCTSTR key , LPCTSTR& rKey ) const;
CMapStringToString BOOL LookupKey( LPCTSTR key , LPCTSTR& rKey ) const;

CMapStringToOb::operator [ ]

Ein praktischer Ersatz für die SetAt Memberfunktion.

CObject*& operator[ ](lpctstr key);

Rückgabewert

Ein Verweis auf einen Zeiger auf ein CObject Objekt oder NULL wenn die Karte leer key oder außerhalb des Bereichs ist.

Hinweise

Daher kann sie nur auf der linken Seite einer Zuordnungsanweisung (ein l-value) verwendet werden. Wenn kein Zuordnungselement mit dem angegebenen Schlüssel vorhanden ist, wird ein neues Element erstellt.

Es gibt keine "rechte Seite" (r-value) entspricht diesem Operator, da es eine Möglichkeit gibt, dass ein Schlüssel möglicherweise nicht in der Karte gefunden wird. Verwenden Sie die Lookup Memberfunktion zum Abrufen von Elementen.

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::operator [].

Klasse Memberfunktion
CMapPtrToPtr void*& operator[](void *key );
CMapPtrToWord WORD& operator[](void *key );
CMapStringToPtr void*& operator[](lpctstr key );
CMapStringToString CString& operator[](lpctstr key );
CMapWordToOb CObject*& operator[](word key );
CMapWordToPtr void*& operator[](word key );

Beispiel

Eine Auflistung der CAge Klasse finden Sie CObList::CObList in allen Auflistungsbeispielen.

CMapStringToOb map;

map[_T("Bart")] = new CAge(13);
map[_T("Lisa")] = new CAge(11);
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("Operator [] example: ") << &map << _T("\n");
#endif

Die Ergebnisse dieses Programms sind wie folgt:

Operator [] example: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $4A02 11
[Bart] = a CAge at $497E 13

CMapStringToOb::RemoveAll

Entfernt alle Elemente aus dieser Karte und zerstört die CString wichtigsten Objekte.

void RemoveAll();

Hinweise

Die CObject Objekte, auf die von jedem Schlüssel verwiesen wird, werden nicht zerstört. Die RemoveAll Funktion kann Speicherverluste verursachen, wenn Sie nicht sicherstellen, dass die referenzierten CObject Objekte zerstört werden.

Die Funktion funktioniert ordnungsgemäß, wenn die Karte bereits leer ist.

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::RemoveAll.

Klasse Memberfunktion
CMapPtrToPtr void RemoveAll();
CMapPtrToWord void RemoveAll();
CMapStringToPtr void RemoveAll();
CMapStringToString void RemoveAll();
CMapWordToOb void RemoveAll();
CMapWordToPtr void RemoveAll();

Beispiel

Eine Auflistung der CAge Klasse finden Sie CObList::CObList in allen Auflistungsbeispielen.

{
   CMapStringToOb map;

   CAge age1(13); // Two objects on the stack
   CAge age2(36);
   map.SetAt(_T("Bart"), &age1);
   map.SetAt(_T("Homer"), &age2);
   ASSERT(map.GetCount() == 2);
   map.RemoveAll(); // CObject pointers removed; objects not removed.
   ASSERT(map.GetCount() == 0);
   ASSERT(map.IsEmpty());
} // The two CAge objects are deleted when they go out of scope.

CMapStringToOb::RemoveKey

Sucht den Karteneintrag, der dem angegebenen Schlüssel entspricht; wenn der Schlüssel gefunden wird, wird der Eintrag entfernt.

BOOL RemoveKey(LPCTSTR key);

Parameter

key
Gibt die Zeichenfolge an, die für die Zuordnungssuche verwendet wird.

Rückgabewert

Nonzero, wenn der Eintrag gefunden und erfolgreich entfernt wurde; andernfalls 0.

Hinweise

Dies kann zu Speicherlecks führen, wenn das CObject Objekt nicht an anderer Stelle gelöscht wird.

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::RemoveKey.

Klasse Memberfunktion
CMapPtrToPtr BOOL RemoveKey( void *key );
CMapPtrToWord BOOL RemoveKey( void *key );
CMapStringToPtr BOOL RemoveKey( LPCTSTR key );
CMapStringToString BOOL RemoveKey( LPCTSTR key );
CMapWordToOb BOOL RemoveKey( WORD key );
CMapWordToPtr BOOL RemoveKey( WORD key );

Beispiel

Eine Auflistung der CAge Klasse finden Sie CObList::CObList in allen Auflistungsbeispielen.

CMapStringToOb map;

map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("Marge"), new CAge(35));
map.RemoveKey(_T("Lisa")); // Memory leak: CAge object not
                           // deleted.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("RemoveKey example: ") << &map << _T("\n");
#endif

Die Ergebnisse dieses Programms sind wie folgt:

RemoveKey example: A CMapStringToOb with 3 elements
[Marge] = a CAge at $49A0 35
[Homer] = a CAge at $495E 36
[Bart] = a CAge at $4634 13

CMapStringToOb::SetAt

Die primäre Möglichkeit, ein Element in eine Karte einzufügen.

void SetAt(
    LPCTSTR key,
    CObject* newValue);

Parameter

key
Gibt die Zeichenfolge an, die der Schlüssel des neuen Elements ist.

newValue
Gibt den CObject Zeiger an, der den Wert des neuen Elements darstellt.

Hinweise

Zuerst wird der Schlüssel nachschlagen. Wenn der Schlüssel gefunden wird, wird der entsprechende Wert geändert; andernfalls wird ein neues Schlüsselwertelement erstellt.

In der folgenden Tabelle sind andere Memberfunktionen aufgeführt, die ähnlich sind CMapStringToOb::SetAt.

Klasse Memberfunktion
CMapPtrToPtr void SetAt( void *key , void *newValue );
CMapPtrToWord void SetAt( void *key , WORD newValue );
CMapStringToPtr void SetAt( LPCTSTR key , void *newValue );
CMapStringToString void SetAt( LPCTSTR key , LPCTSTR newValue );
CMapWordToOb void SetAt( WORD key , CObject *newValue );
CMapWordToPtr void SetAt( WORD key , void *newValue );

Beispiel

Eine Auflistung der CAge Klasse finden Sie CObList::CObList in allen Auflistungsbeispielen.

CMapStringToOb map;
CAge *pa;

map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11)); // Map contains 2
                                     // elements.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("before Lisa's birthday: ") << &map << _T("\n");
#endif
if (map.Lookup(_T("Lisa"), (CObject *&)pa))
{ // CAge 12 pointer replaces CAge 11 pointer.
   map.SetAt(_T("Lisa"), new CAge(12));
   delete pa; // Must delete CAge 11 to avoid memory leak.
}
#ifdef _DEBUG
afxDump << _T("after Lisa's birthday: ") << &map << _T("\n");
#endif

Die Ergebnisse dieses Programms sind wie folgt:

before Lisa's birthday: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $493C 11
[Bart] = a CAge at $4654 13
after Lisa's birthday: A CMapStringToOb with 2 elements
[Lisa] = a CAge at $49C0 12
[Bart] = a CAge at $4654 13

Siehe auch

CObject-Klasse
Hierarchiediagramm
CMapPtrToPtr Klasse
CMapPtrToWord Klasse
CMapStringToPtr Klasse
CMapStringToString Klasse
CMapWordToOb Klasse
CMapWordToPtr Klasse