Partage via


CRBMap, classe

Cette classe représente une structure de mappage, à l’aide d’une arborescence binaire Rouge-Noir.

Syntaxe

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

Paramètres

K
Type d’élément clé.

V
Type d’élément value.

KTraits
Code utilisé pour copier ou déplacer des éléments clés. Pour plus d’informations, consultez la classe CElementTraits.

VTraits
Code utilisé pour copier ou déplacer des éléments de valeur.

Membres

Constructeurs publics

Nom Description
CRBMap ::CRBMap Constructeur .
CRBMap ::~CRBMap Destructeur.

Méthodes publiques

Nom Description
CRBMap ::Lookup Appelez cette méthode pour rechercher des clés ou des valeurs dans l’objet CRBMap .
CRBMap ::RemoveKey Appelez cette méthode pour supprimer un élément de l’objet CRBMap , en fonction de la clé.
CRBMap ::SetAt Appelez cette méthode pour insérer une paire d’éléments dans la carte.

Notes

CRBMap fournit la prise en charge d’un tableau de mappage d’un type donné, la gestion d’un tableau ordonné d’éléments clés et de leurs valeurs associées. Chaque clé ne peut avoir qu’une seule valeur associée. Les éléments (composés d’une clé et d’une valeur) sont stockés dans une structure d’arborescence binaire, à l’aide de la méthode CRBMap ::SetAt . Les éléments peuvent être supprimés à l’aide de la méthode CRBMap ::RemoveKey , qui supprime l’élément avec la valeur de clé donnée.

La traversée de l’arborescence est rendue possible avec des méthodes telles que CRBTree ::GetHeadPosition, CRBTree ::GetNext et CRBTree ::GetNextValue.

Les paramètres KTraits et VTraits sont des classes de caractéristiques qui contiennent tout code supplémentaire nécessaire pour copier ou déplacer des éléments.

CRBMapest dérivé de CRBTree, qui implémente une arborescence binaire à l’aide de l’algorithme Red-Black. CRBMultiMap est une variante qui autorise plusieurs valeurs pour chaque clé. Il est également dérivé de CRBTree, et donc partage de nombreuses fonctionnalités avec CRBMap.

Une alternative à la fois CRBMap et CRBMultiMap est proposée par la classe CAtlMap . Lorsque seul un petit nombre d’éléments doit être stocké, envisagez plutôt d’utiliser la classe CSimpleMap .

Pour une discussion plus complète sur les différentes classes de collection et leurs caractéristiques de performances, consultez les classes de collection ATL.

Hiérarchie d'héritage

CRBTree

CRBMap

Spécifications

En-tête : atlcoll.h

CRBMap ::CRBMap

Constructeur .

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

Paramètres

nBlockSize
Taille du bloc.

Notes

Le paramètre nBlockSize est une mesure de la quantité de mémoire allouée lorsqu’un nouvel élément est requis. Les tailles de bloc supérieures réduisent les appels aux routines d’allocation de mémoire, mais utilisent davantage de ressources. La valeur par défaut alloue de l’espace pour 10 éléments à la fois.

Pour plus d’informations sur les autres méthodes disponibles, consultez la documentation de la classe de base CRBTree .

Exemple

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

Destructeur.

~CRBMap() throw();

Notes

Libère toutes les ressources allouées.

Pour plus d’informations sur les autres méthodes disponibles, consultez la documentation de la classe de base CRBTree .

CRBMap ::Lookup

Appelez cette méthode pour rechercher des clés ou des valeurs dans l’objet CRBMap .

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

Paramètres

key
Spécifie la clé qui identifie l’élément à rechercher.

value
Variable qui reçoit la valeur recherchée.

Valeur de retour

La première forme de la méthode retourne true si la clé est trouvée, sinon false. Les deuxième et troisième formulaires retournent un pointeur vers un CPair.

Notes

Pour plus d’informations sur les autres méthodes disponibles, consultez la documentation de la classe de base CRBTree .

Exemple

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

CRBMap ::RemoveKey

Appelez cette méthode pour supprimer un élément de l’objet CRBMap , en fonction de la clé.

bool RemoveKey(KINARGTYPE key) throw();

Paramètres

key
Clé correspondant à la paire d’éléments que vous souhaitez supprimer.

Valeur de retour

Retourne true si la clé est trouvée et supprimée, false en cas d’échec.

Notes

Pour plus d’informations sur les autres méthodes disponibles, consultez la documentation de la classe de base CRBTree .

Exemple

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

CRBMap ::SetAt

Appelez cette méthode pour insérer une paire d’éléments dans la carte.

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

Paramètres

key
Valeur de clé à ajouter à l’objet CRBMap .

value
Valeur à ajouter à l’objet CRBMap .

Valeur de retour

Retourne la position de la paire d’éléments clé/valeur dans l’objet CRBMap .

Notes

SetAt remplace un élément existant si une clé correspondante est trouvée. Si la clé est introuvable, une nouvelle paire clé/valeur est créée.

Pour plus d’informations sur les autres méthodes disponibles, consultez la documentation de la classe de base CRBTree .

Exemple

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

Voir aussi

CRBTree, classe
CAtlMap, classe
CRBMultiMap, classe
Vue d’ensemble de la classe