CMapStringToOb::GetNextAssoc
Recupera l'elemento del mapping a rNextPosition, quindi aggiorna il rNextPosition per fare riferimento all'elemento successivo nella mappa.
void GetNextAssoc(
POSITION& rNextPosition,
CString& rKey,
CObject*& rValue
) const;
Parametri
rNextPosition
Specifica un riferimento a un valore di percorso restituito da una chiamata precedente GetStartPosition o GetNextAssoc.rKey
Specifica la chiave restituita elemento recuperato (una stringa).rValue
Specifica il valore restituito dell'elemento recuperato (un puntatore CObject ). Vedere le note per ulteriori informazioni su questo parametro.
Note
Questa funzione è utile per la scorrere tutti gli elementi nella mappa. Si noti che la sequenza di posizione non è necessariamente la stessa sequenza di valori della chiave.
Se l'elemento recuperato è l'ultimo nel mapping, il nuovo valore di rNextPosition è impostato su NULL.
Per il parametro rValue, assicurarsi di eseguire il cast del tipo di oggetto CObject*&, utilizzato dal compilatore richiede, come illustrato nel seguente esempio:
CObject* ob;
map.GetNextAssoc(pos, key, (CObject*&)ob);
Ciò non accade per GetNextAssoc per le mappe basate su modelli.
Nella tabella seguente vengono illustrate altre funzioni membro che sono simili a CMapStringToOb::GetNextAssoc.
Classe |
Funzione membro |
---|---|
rValue ) const;di, void*& dirKey di, void*& dirNextPosition divoid GetNextAssoc( POSITION& |
|
rValue ) const;di, WORD& dirKey di, void*& dirNextPosition divoid GetNextAssoc( POSITION& |
|
rValue ) const;di, void*& dirKey di, CString& dirNextPosition divoid GetNextAssoc( POSITION& |
|
rValue ) const;di, CString& dirKey di, CString& dirNextPosition divoid GetNextAssoc( POSITION& |
|
rValue ) const;di, CObject*& dirKey di, WORD& dirNextPosition divoid GetNextAssoc( POSITION& |
|
rValue ) const;di, void*& dirKey di, WORD& dirNextPosition divoid GetNextAssoc( POSITION& |
Esempio
Vedere CObList::CObList per un elenco CAge utilizzata in tutti gli esempi di raccolta.
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
}
I risultati di questo programma sono:
Lisa : a CAge at $4724 11
Marge : a CAge at $47A8 35
Homer : a CAge at $4766 36
Bart : a CAge at $45D4 13
Requisiti
Header: afxcoll.h