CMapStringToOb::GetNextAssoc
Recupera el elemento de mapa en el rNextPosition, después actualiza el rNextPosition para hacer referencia al elemento siguiente en el mapa.
void GetNextAssoc(
POSITION& rNextPosition,
CString& rKey,
CObject*& rValue
) const;
Parámetros
rNextPosition
especifica una referencia a un valor devuelto de POSICIÓN por una llamada anterior de GetNextAssoc o de GetStartPosition .rKey
Especifica la clave devuelta de elemento recuperado (una cadena).rValue
Especifica el valor devuelto del elemento recuperado (un puntero de CObject ).Vea las notas para más información sobre este parámetro.
Comentarios
Esta función es muy útil para iterar por todos los elementos de mapa.Observe que la secuencia de la posición no es necesariamente igual a la secuencia de valores de clave.
Si el elemento recuperado es el último del mapa, el nuevo valor de rNextPosition se establece en NULL.
Para el parámetro rValue, asegúrese de convertir el tipo de objeto a CObject*&, que es lo que requiere el compilador, como se muestra en el ejemplo siguiente:
CObject* ob;
map.GetNextAssoc(pos, key, (CObject*&)ob);
Esto no es true de GetNextAssoc para las asignaciones basadas en las plantillas.
La tabla siguiente se muestran otras funciones miembro que son similares a CMapStringToOb:: GetNextAssoc.
Clase |
Función miembro |
---|---|
const vacío de GetNextAssoc (rNextPosition de POSITION&, rKey de void*&, rValue de void*&); |
|
const vacío de GetNextAssoc (rNextPosition de POSITION&, rKey de void*&, rValue de WORD&); |
|
const vacío de GetNextAssoc (rNextPosition de POSITION&, rKey de CString&, rValue de void*&); |
|
const vacío de GetNextAssoc (rNextPosition de POSITION&, rKey de CString&, rValue de CString&); |
|
const vacío de GetNextAssoc (rNextPosition de POSITION&, rKey de WORD&, rValue de CObject*&); |
|
const vacío de GetNextAssoc (rNextPosition de POSITION&, rKey de WORD&, rValue de void*&); |
Ejemplo
Vea CObList:: CObList para una lista de la clase de CAge utilizada en todos los ejemplos de la colección.
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
}
Los resultados de este programa son los siguientes:
Lisa : a CAge at $4724 11
Marge : a CAge at $47A8 35
Homer : a CAge at $4766 36
Bart : a CAge at $45D4 13
Requisitos
encabezado: afxcoll.h