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
CMapStringToOb
Anforderungen
Header: afxcoll.h
CMapStringToOb::CMapStringToOb
Erstellt eine leere CString
Zuordnung 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 rNextPosition
und 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