Condividi tramite


Classe CRBMap

Questa classe rappresenta una struttura di mapping, utilizzando un albero binario Red-Black.

Sintassi

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

Parametri

K
Tipo di elemento chiave.

V
Tipo di elemento value.

KTraits
Codice utilizzato per copiare o spostare elementi chiave. Per altri dettagli, vedere Classe CElementTraits.

VTraits
Codice utilizzato per copiare o spostare elementi valore.

Membri

Costruttori pubblici

Nome Descrizione
CRBMap::CRBMap Costruttore.
CRBMap::~CRBMap Distruttore.

Metodi pubblici

Nome Descrizione
CRBMap::Lookup Chiamare questo metodo per cercare chiavi o valori nell'oggetto CRBMap .
CRBMap::RemoveKey Chiamare questo metodo per rimuovere un elemento dall'oggetto CRBMap , in base alla chiave.
CRBMap::SetAt Chiamare questo metodo per inserire una coppia di elementi nella mappa.

Osservazioni:

CRBMap fornisce supporto per una matrice di mapping di qualsiasi tipo specificato, gestendo una matrice ordinata di elementi chiave e i relativi valori associati. Ogni chiave può avere un solo valore associato. Gli elementi (costituiti da una chiave e un valore) vengono archiviati in una struttura ad albero binaria usando il metodo CRBMap::SetAt . Gli elementi possono essere rimossi usando il metodo CRBMap::RemoveKey , che elimina l'elemento con il valore della chiave specificato.

L'attraversamento dell'albero è reso possibile con metodi come CRBTree::GetHeadPosition, CRBTree::GetNext e CRBTree::GetNextValue.

I parametri KTraits e VTraits sono classi di tratti che contengono qualsiasi codice supplementare necessario per copiare o spostare elementi.

CRBMap deriva da CRBTree, che implementa un albero binario usando l'algoritmo Red-Black. CRBMultiMap è una variante che consente più valori per ogni chiave. È anche derivato da CRBTreee quindi condivide molte funzionalità con CRBMap.

Un'alternativa a CRBMap e CRBMultiMap è offerta dalla classe CAtlMap . Quando è necessario archiviare solo un numero ridotto di elementi, prendere in considerazione l'uso della classe CSimpleMap .

Per una descrizione più completa delle varie classi di raccolte e delle relative caratteristiche e caratteristiche delle prestazioni, vedere Classi di raccolta ATL.

Gerarchia di ereditarietà

CRBTree

CRBMap

Requisiti

Intestazione: atlcoll.h

CRBMap::CRBMap

Costruttore.

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

Parametri

nBlockSize
Dimensione del blocco.

Osservazioni:

Il parametro nBlockSize è una misura della quantità di memoria allocata quando è necessario un nuovo elemento. Le dimensioni dei blocchi maggiori riducono le chiamate alle routine di allocazione della memoria, ma usano più risorse. Il valore predefinito allocherà spazio per 10 elementi alla volta.

Per informazioni sugli altri metodi disponibili, vedere la documentazione relativa alla classe base CRBTree .

Esempio

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

Distruttore.

~CRBMap() throw();

Osservazioni:

Libera tutte le risorse allocate.

Per informazioni sugli altri metodi disponibili, vedere la documentazione relativa alla classe base CRBTree .

CRBMap::Lookup

Chiamare questo metodo per cercare chiavi o valori nell'oggetto CRBMap .

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

Parametri

key
Specifica la chiave che identifica l'elemento da cercare.

value
Variabile che riceve il valore cercato.

Valore restituito

La prima forma del metodo restituisce true se la chiave viene trovata, in caso contrario false. La seconda e la terza forma restituiscono un puntatore a un oggetto CPair.

Osservazioni:

Per informazioni sugli altri metodi disponibili, vedere la documentazione relativa alla classe base CRBTree .

Esempio

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

CRBMap::RemoveKey

Chiamare questo metodo per rimuovere un elemento dall'oggetto CRBMap , in base alla chiave.

bool RemoveKey(KINARGTYPE key) throw();

Parametri

key
Chiave corrispondente alla coppia di elementi da rimuovere.

Valore restituito

Restituisce true se la chiave viene trovata e rimossa, false in caso di errore.

Osservazioni:

Per informazioni sugli altri metodi disponibili, vedere la documentazione relativa alla classe base CRBTree .

Esempio

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

CRBMap::SetAt

Chiamare questo metodo per inserire una coppia di elementi nella mappa.

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

Parametri

key
Valore della chiave da aggiungere all'oggetto CRBMap .

value
Valore da aggiungere all'oggetto CRBMap .

Valore restituito

Restituisce la posizione della coppia di elementi chiave/valore nell'oggetto CRBMap .

Osservazioni:

SetAt sostituisce un elemento esistente se viene trovata una chiave corrispondente. Se la chiave non viene trovata, viene creata una nuova coppia chiave/valore.

Per informazioni sugli altri metodi disponibili, vedere la documentazione relativa alla classe base CRBTree .

Esempio

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

Vedi anche

Classe CRBTree
Classe CAtlMap
Classe CRBMultiMap
Cenni preliminari sulla classe