CMapStringToOb::GetNextAssoc
Ruft das Kartenelement am rNextPosition ab, dann aktualisiert rNextPosition, um das folgende Element in der Zuordnung zu verweisen.
void GetNextAssoc(
POSITION& rNextPosition,
CString& rKey,
CObject*& rValue
) const;
Parameter
rNextPosition
Gibt einen Verweis auf ein POSITION-Wert an, der von einem vorherigen GetNextAssoc oder GetStartPosition Aufruf zurückgegeben wird.rKey
Gibt den zurückgegebenen Schlüssel des abgerufenen Elements an (eine Zeichenfolge).R-Wert
Gibt den zurückgegebenen Wert des abgerufenen Elements an (ein CObject-Zeiger).Siehe Hinweise für mehr über diesen Parameter.
Hinweise
Diese Funktion ist zum Durchlaufen von allen Elementen in der Zuordnung geeignet.Beachten Sie, dass die Positionssequenz nicht unbedingt mit der Schlüsselwertsequenz ist.
Wenn das abgerufene Element die letzte in der Zuordnung ist, wird der neue Wert für rNextPosition zu NULL festgelegt.
Für den rvalue-Parameter stellen Sie sicher, den Objekttyp zu CObject*&, der ist, was der Compiler benötigt, wie im folgenden Beispiel gezeigt umzuwandeln:
CObject* ob;
map.GetNextAssoc(pos, key, (CObject*&)ob);
Dies ist nicht von GetNextAssoc für Zuordnungen auf Grundlage von True.
In der folgenden Tabelle werden andere Memberfunktionen auf, die mit CMapStringToOb::GetNextAssoc ähneln.
Klasse |
Memberfunktion |
---|---|
void GetNextAssoc( POSITION& rNextPosition, void*& rKey, void*& R-Wert ) const; |
|
void GetNextAssoc( POSITION& rNextPosition, void*& rKey, WORD& R-Wert ) const; |
|
void GetNextAssoc( POSITION& rNextPosition, CString& rKey, void*& R-Wert ) const; |
|
void GetNextAssoc( POSITION& rNextPosition, CString& rKey, CString& R-Wert ) const; |
|
void GetNextAssoc( POSITION& rNextPosition, WORD& rKey, CObject*& R-Wert ) const; |
|
void GetNextAssoc( POSITION& rNextPosition, WORD& rKey, void*& R-Wert ) const; |
Beispiel
Siehe CObList::CObList für Listen der CAge-Klasse, die in allen Auflistungsbeispielen verwendet wird.
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
Anforderungen
Header: afxcoll.h