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
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