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.
CRBMap
est 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
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