Compartir vía


CRBMap (clase)

Esta clase representa una estructura de asignación mediante un árbol binario Rojo-Negro.

Sintaxis

template <typename K,
          typename V,
          class KTraits = CElementTraits<K>,
          class VTraits = CElementTraits<V>>
class CRBMap : public CRBTree<K, V, KTraits, VTraits>

Parámetros

K
Tipo de elemento clave.

V
Tipo de elemento de valor.

KTraits
Código usado para copiar o mover elementos de clave. Consulte CElementTraits (clase) para más información.

VTraits
Código usado para copiar o mover elementos de valor.

Miembros

Constructores públicos

Nombre Descripción
CRBMap::CRBMap Constructor .
CRBMap::~CRBMap El destructor .

Métodos públicos

Nombre Descripción
CRBMap::Lookup Llame a este método para buscar claves o valores en el objeto CRBMap.
CRBMap::RemoveKey Llame a este método para quitar un elemento del objeto CRBMap, dado la clave.
CRBMap::SetAt Llame a este método para insertar un par de elementos en el mapa.

Comentarios

CRBMap proporciona compatibilidad con una matriz de asignación de cualquier tipo dado, administrando una matriz ordenada de elementos clave y sus valores asociados. Cada clave solo puede tener un valor asociado. Los elementos (que constan de una clave y un valor) se almacenan en una estructura de árbol binario mediante el método CRBMap::SetAt. Los elementos se pueden quitar mediante el método CRBMap::RemoveKey , que elimina el elemento con el valor de clave especificado.

Recorrer el árbol es posible con métodos como CRBTree::GetHeadPosition, CRBTree::GetNext y CRBTree::GetNextValue.

Los parámetros KTraits y VTraits son clases de rasgos que contienen cualquier código complementario necesario para copiar o mover elementos.

CRBMap se deriva de CRBTree, que implementa un árbol binario mediante el algoritmo Red-Black. CRBMultiMap es una variación que permite varios valores para cada clave. También se deriva de CRBTree, por lo que comparte muchas características con CRBMap.

La clase CAtlMap ofrece una alternativa tanto para CRBMap como para CRBMultiMap. Cuando solo es necesario almacenar un pequeño número de elementos, considere la posibilidad de usar la clase CSimpleMap en su lugar.

Para obtener una explicación más completa de las distintas clases de colección y sus características y características de rendimiento, consulte Clases de colección de ATL.

Jerarquía de herencia

CRBTree

CRBMap

Requisitos

Encabezado: atlcoll.h

CRBMap::CRBMap

Constructor .

explicit CRBMap(size_t nBlockSize = 10) throw();

Parámetros

nBlockSize
Tamaño del bloque.

Comentarios

El parámetro nBlockSize es una medida de la cantidad de memoria asignada cuando se requiere un nuevo elemento. Los tamaños de bloque más grandes reducen las llamadas a rutinas de asignación de memoria, pero usan más recursos. El valor predeterminado asignará espacio para 10 elementos a la vez.

Consulte la documentación de la clase base CRBTree para información sobre los demás métodos disponibles.

Ejemplo

// Define a map object which has an
// integer key, a double value, and a
// block size of 5
CRBMap<int, double> myMap(5);

CRBMap::~CRBMap

El destructor .

~CRBMap() throw();

Comentarios

Libera los recursos asignados.

Consulte la documentación de la clase base CRBTree para información sobre los demás métodos disponibles.

CRBMap::Lookup

Llame a este método para buscar claves o valores en el objeto CRBMap.

bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const throw(...);
const CPair* Lookup(KINARGTYPE key) const throw();
CPair* Lookup(KINARGTYPE key) throw();

Parámetros

key
Especifica la clave que identifica el elemento que se va a buscar.

value
Variable que recibe el valor buscado.

Valor devuelto

La primera forma del método devuelve true si se encuentra la clave; si no, false. Los formularios segundo y tercero devuelven un puntero a un CPair.

Comentarios

Consulte la documentación de la clase base CRBTree para información sobre los demás métodos disponibles.

Ejemplo

// Look up the value for a key of 0
double v;
myMap.Lookup(0,v);

CRBMap::RemoveKey

Llame a este método para quitar un elemento del objeto CRBMap, dado la clave.

bool RemoveKey(KINARGTYPE key) throw();

Parámetros

key
Clave correspondiente al par de elementos que desea quitar.

Valor devuelto

Devuelve TRUE si se encuentra y se quita la clave, FALSE en caso de error.

Comentarios

Consulte la documentación de la clase base CRBTree para información sobre los demás métodos disponibles.

Ejemplo

// Remove an element, based on the key of 0
ATLVERIFY(myMap.RemoveKey(0) == true);

CRBMap::SetAt

Llame a este método para insertar un par de elementos en el mapa.

POSITION SetAt(
    KINARGTYPE key,
    VINARGTYPE value) throw(...);

Parámetros

key
Valor de clave que se va a agregar al objeto CRBMap.

value
Valor del objeto que se va a agregar a CRBMap.

Valor devuelto

Devuelve la posición del par de elementos clave-valor del objeto CRBMap.

Comentarios

SetAt reemplaza un elemento existente si se encuentra una clave coincidente. Si no se encuentra la clave, se crea un nuevo par clave-valor.

Consulte la documentación de la clase base CRBTree para información sobre los demás métodos disponibles.

Ejemplo

// Add an element to the map, with a key of 0
myMap.SetAt(0,1.1);

Vea también

CRBTree (clase)
CAtlMap (clase)
CRBMultiMap (clase)
Información general sobre la clase