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