CSimpleMap (clase)
Esta clase proporciona compatibilidad con una matriz de asignación simple.
Sintaxis
template <class TKey, class TVal, class TEqual = CSimpleMapEqualHelper<TKey, TVal>>
class CSimpleMap
Parámetros
TKey
Tipo de elemento clave.
TVal
Tipo de elemento de valor.
TEqual
Objeto de rasgos, que define la prueba de igualdad para los elementos de tipo T
.
Miembros
Definiciones de tipos públicas
Nombre | Descripción |
---|---|
CSimpleMap::_ArrayElementType | Definición de tipo para el tipo de valor. |
CSimpleMap::_ArrayKeyType | Definición de tipo para el tipo de clave. |
Constructores públicos
Nombre | Descripción |
---|---|
CSimpleMap::CSimpleMap | Constructor . |
CSimpleMap::~CSimpleMap | El destructor . |
Métodos públicos
Nombre | Descripción |
---|---|
CSimpleMap::Add | Agrega una clave y un valor asociado a la matriz de asignaciones. |
CSimpleMap::FindKey | Busca una clave específica. |
CSimpleMap::FindVal | Busca un valor específico. |
CSimpleMap::GetKeyAt | Recupera la clave especificada. |
CSimpleMap::GetSize | Devuelve el número de entradas de la matriz de asignación. |
CSimpleMap::GetValueAt | Recupera el valor especificado. |
CSimpleMap::Lookup | Devuelve el valor asociado a la clave facilitada. |
CSimpleMap::Remove | Quita una clave y un valor coincidente. |
CSimpleMap::RemoveAll | Quita todas las claves y valores. |
CSimpleMap::RemoveAt | Quita una clave específica y un valor coincidente. |
CSimpleMap::ReverseLookup | Devuelve la clave asociada al valor facilitado. |
CSimpleMap::SetAt | Establece el valor asociado a la clave facilitada. |
CSimpleMap::SetAtIndex | Establece la clave y el valor específicos. |
Comentarios
CSimpleMap
proporciona compatibilidad con una matriz de asignación simple de cualquier tipo T
dado, administrando una matriz desordenada de elementos clave y sus valores asociados.
El parámetro TEqual
proporciona un medio para definir una función de igualdad para dos elementos de tipo T
. Al crear una clase similar a CSimpleMapEqualHelper, es posible modificar el comportamiento de la prueba de igualdad para cualquier matriz determinada. Por ejemplo, al tratar con una matriz de punteros, puede ser útil definir la igualdad según los valores a los que hacen referencia los punteros. La implementación predeterminada usa operator==().
Tanto CSimpleMap
como CSimpleArray se proporcionan para la compatibilidad con versiones anteriores de ATL, mientras que CAtlArray y CAtlMap proporcionan implementaciones de la colección más completas y eficaces.
A diferencia de otras colecciones de mapa en ATL y MFC, esta clase se implementa con una matriz simple y las búsquedas requieren una búsqueda lineal. CAtlMap
se debe usar cuando la matriz contiene un gran número de elementos.
Requisitos
Encabezado: atlsimpcoll.h
Ejemplo
// Create a map with an integer key and character pointer value
CSimpleMap<int, char *> iArray;
CSimpleMap::Add
Agrega una clave y un valor asociado a la matriz de asignaciones.
BOOL Add(const TKey& key, const TVal& val);
Parámetros
key
Clave.
val
Valor asociado.
Valor devuelto
Devuelve TRUE si la clave y el valor se agregaron correctamente; de lo contrario, devuelve FALSE.
Comentarios
Cada par de clave y valor agregado hace que la memoria de la matriz de asignación se libere y reasigne para asegurarse de que los datos de cada uno siempre se almacenan de forma contigua. Es decir, el segundo elemento clave siempre sigue directamente al primer elemento clave en la memoria, etc.
CSimpleMap::_ArrayElementType
Definición de tipo para el tipo de clave.
typedef TVal _ArrayElementType;
CSimpleMap::_ArrayKeyType
Definición de tipo para el tipo de valor.
typedef TKey _ArrayKeyType;
CSimpleMap::CSimpleMap
Constructor .
CSimpleMap();
Comentarios
Inicializa los miembros de datos.
CSimpleMap::~CSimpleMap
El destructor .
~CSimpleMap();
Comentarios
Libera todos los recursos asignados.
CSimpleMap::FindKey
Busca una clave específica.
int FindKey(const TKey& key) const;
Parámetros
key
Clave que se va a buscar.
Valor devuelto
Devuelve el índice de la clave si se encuentra; de lo contrario, devuelve -1.
CSimpleMap::FindVal
Busca un valor específico.
int FindVal(const TVal& val) const;
Parámetros
val
Valor para el que se va a buscar.
Valor devuelto
Devuelve el índice del valor si se encuentra; de lo contrario, devuelve -1.
CSimpleMap::GetKeyAt
Recupera la clave en el índice especificado.
TKey& GetKeyAt(int nIndex) const;
Parámetros
nIndex
Índice de la clave que se va a devolver.
Valor devuelto
Devuelve la clave a la que nIndex hace referencia.
Comentarios
El índice pasado por nIndex debe ser válido para que el valor devuelto sea significativo.
CSimpleMap::GetSize
Devuelve el número de entradas de la matriz de asignación.
int GetSize() const;
Valor devuelto
Devuelve el número de entradas (una clave y un valor es una entrada) en la matriz de asignación.
CSimpleMap::GetValueAt
Recupera el valor en el índice específico.
TVal& GetValueAt(int nIndex) const;
Parámetros
nIndex
Índice del valor que se ha de devolver.
Valor devuelto
Devuelve el valor al que nIndex hace referencia.
Comentarios
El índice pasado por nIndex debe ser válido para que el valor devuelto sea significativo.
CSimpleMap::Lookup
Devuelve el valor asociado a la clave facilitada.
TVal Lookup(const TKey& key) const;
Parámetros
key
Clave.
Valor devuelto
Devuelve el valor asociado. Si no se encuentra ninguna clave coincidente, se devuelve NULL.
CSimpleMap::Remove
Quita una clave y un valor coincidente.
BOOL Remove(const TKey& key);
Parámetros
key
Clave.
Valor devuelto
Devuelve TRUE si la clave y el valor coincidente se quitaron correctamente; de lo contrario, devuelve FALSE.
CSimpleMap::RemoveAll
Quita todas las claves y valores.
void RemoveAll();
Comentarios
Quita todas las claves y valores del objeto de matriz de asignación.
CSimpleMap::RemoveAt
Quita una clave y un valor asociado en el índice especificado.
BOOL RemoveAt(int nIndex);
Parámetros
nIndex
Índice de la clave y el valor asociado que se va a quitar.
Valor devuelto
Devuelve TRUE si la operación se realiza correctamente y FALSE si el índice especificado es un índice no válido.
CSimpleMap::ReverseLookup
Devuelve la clave asociada al valor facilitado.
TKey ReverseLookup(const TVal& val) const;
Parámetros
val
Valor de tipo .
Valor devuelto
Devuelve la clave asociada. Si no se encuentra ninguna clave coincidente, se devuelve NULL.
CSimpleMap::SetAt
Establece el valor asociado a la clave facilitada.
BOOL SetAt(const TKey& key, const TVal& val);
Parámetros
key
Clave.
val
Nuevo valor que se va a asignar.
Valor devuelto
Devuelve TRUE si se encontró la clave y el valor se cambió correctamente; en caso contrario, FALSE.
CSimpleMap::SetAtIndex
Establece la clave y el valor en un índice especificado.
BOOL SetAtIndex(
int nIndex,
const TKey& key,
const TVal& val);
Parámetros
nIndex
Índice, que hace referencia al emparejamiento de clave y valor que se va a cambiar.
key
Nueva clave.
val
Nuevo valor.
Valor devuelto
Devuelve TRUE si la operación se realiza correctamente y FALSE si el índice no era válido.
Comentarios
Actualiza tanto la clave como el valor a los que apunta nIndex.