Clase CTypedPtrMap
Proporciona un "contenedor" con seguridad de tipos para objetos de las clases de asignación de puntero CMapPtrToPtr
, CMapPtrToWord
, CMapWordToPtr
y CMapStringToPtr
.
Sintaxis
template<class BASE_CLASS, class KEY, class VALUE>
class CTypedPtrMap : public BASE_CLASS
Parámetros
BASE_CLASS
Clase base de la clase de mapa de puntero con tipo; debe ser una clase de mapa de puntero ( CMapPtrToPtr
, CMapPtrToWord
, CMapWordToPtr
, o CMapStringToPtr
).
KEY
Clase del objeto utilizado como clave para la asignación.
VALUE
Clase del objeto almacenado en la asignación.
Miembros
Métodos públicos
Nombre | Descripción |
---|---|
CTypedPtrMap::GetNextAssoc | Obtiene el siguiente elemento para iterar. |
CTypedPtrMap::Lookup | Devuelve un KEY basado en un VALUE . |
CTypedPtrMap::RemoveKey | Quita un elemento especificado por una clave. |
CTypedPtrMap::SetAt | Inserta un elemento en el mapa; reemplaza un elemento existente si se encuentra una clave coincidente. |
Operadores públicos
Nombre | Descripción |
---|---|
CTypedPtrMap::operator [ ] | Inserta un elemento en el mapa. |
Comentarios
Cuando se usa CTypedPtrMap
, la instalación de comprobación de tipos de C++ ayuda a eliminar los errores causados por tipos de punteros no coincidentes.
Dado que todas las funciones CTypedPtrMap
están insertadas, el uso de esta plantilla no afecta significativamente al tamaño o la velocidad del código.
Para obtener más información sobre el uso de CTypedPtrMap
, vea los artículos Colecciones y Clases basadas en plantillas.
Jerarquía de herencia
BASE_CLASS
CTypedPtrMap
Requisitos
Encabezado: afxtempl.h
CTypedPtrMap::GetNextAssoc
Recupera el elemento de la asignación en rNextPosition
y, a continuación, se actualiza rNextPosition
para hacer referencia al siguiente elemento de la asignación.
void GetNextAssoc(
POSITION& rPosition,
KEY& rKey,
VALUE& rValue) const;
Parámetros
rPosition
Especifica una referencia a un valor POSITION devuelto por una llamada anterior GetNextAssoc
o BASE_CLASS
::GetStartPosition.
KEY
Parámetro de plantilla que especifica el tipo de claves del mapa.
rKey
Especifica la clave devuelta del elemento recuperado.
VALUE
Parámetro de plantilla que especifica el tipo de valores del mapa.
rValue
Especifica el valor devuelto del elemento recuperado.
Comentarios
Esta función es más útil para recorrer en iteración todos los elementos del mapa. Tenga en cuenta que la secuencia de posición no es necesariamente la misma que la secuencia de valores de clave.
Si el elemento recuperado es el último del mapa, el nuevo valor de rNextPosition
se establece como nulo.
Esta función insertada llama a BASE_CLASS
::GetNextAssoc.
CTypedPtrMap::Lookup
Lookup
usa un algoritmo hash para buscar, de forma rápida, el elemento de mapa con una clave que coincida exactamente.
BOOL Lookup(BASE_CLASS ::BASE_ARG_KEY key, VALUE& rValue) const;
Parámetros
BASE_CLASS
Parámetro de plantilla que especifica la clase base de la clase de este mapa.
key
La clave del elemento al que se va a buscar.
VALUE
Parámetro de plantilla que especifica el tipo de valores almacenados en este mapa.
rValue
Especifica el valor devuelto del elemento recuperado.
Valor devuelto
Distinto de cero si se ha encontrado el elemento; de lo contrario, 0.
Comentarios
Esta función insertada llama a BASE_CLASS
::Lookup.
CTypedPtrMap::operator [ ]
Este operador solo se puede usar en el lado izquierdo de una instrucción de asignación (un valor L).
VALUE& operator[ ](base_class ::base_arg_key key);
Parámetros
VALUE
Parámetro de plantilla que especifica el tipo de valores almacenados en este mapa.
BASE_CLASS
Parámetro de plantilla que especifica la clase base de la clase de este mapa.
key
Clave del elemento que se va a buscar o crear en el mapa.
Comentarios
Si no hay ningún elemento de mapa con la clave especificada, se crea un nuevo elemento. No hay ningún «lado derecho» (r-value) equivalente a este operador porque existe la posibilidad de que no se encuentre una clave en el mapa. Use la función miembro Lookup
para la recuperación de elementos.
CTypedPtrMap::RemoveKey
Esta función miembro llama a BASE_CLASS
::RemoveKey.
BOOL RemoveKey(KEY key);
Parámetros
KEY
Parámetro de plantilla que especifica el tipo de claves del mapa.
key
Clave del elemento que se va a quitar.
Valor devuelto
Distinto de cero si la entrada se ha encontrado y se ha quitado correctamente; de lo contrario, 0.
Comentarios
Para obtener comentarios más detallados, consulte CMapStringToOb::RemoveKey.
CTypedPtrMap::SetAt
Esta función miembro llama a BASE_CLASS
::SetAt.
void SetAt(KEY key, VALUE newValue);
Parámetros
KEY
Parámetro de plantilla que especifica el tipo de claves del mapa.
key
Especifica el valor de clave del newValue.
newValue
Especifica el puntero de objeto que es el valor del nuevo elemento.
Comentarios
Para obtener comentarios más detallados, consulte CMapStringToOb::SetAt.
Consulte también
Ejemplo COLLECT de MFC
Gráfico de jerarquías
CMapPtrToPtr (clase)
CMapPtrToWord (clase)
CMapWordToPtr (clase)
CMapStringToPtr (clase)