Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
CMapStringToOb
Anforderungen
Kopfball: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 CObList::CObList Klasse finden Sie CAge 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 CObList::CObList Klasse finden Sie CAge 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 CObList::CObList Klasse finden Sie CAge 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 CObList::CObList Klasse finden Sie CAge 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 CObList::CObList Klasse finden Sie CAge 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 CObList::CObList Klasse finden Sie CAge 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 CObList::CObList Klasse finden Sie CAge 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 CObList::CObList Klasse finden Sie CAge 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