Compartir a través de


Clase CTypedPtrMap

Proporciona un "contenedor" con seguridad de tipos para objetos de las clases de asignación de puntero CMapPtrToPtr, CMapPtrToWord, CMapWordToPtry 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)