CRBTree, classe
Cette classe fournit des méthodes pour créer et utiliser une arborescence Rouge-Noir.
Syntaxe
template <typename K,
typename V,
class KTraits = CElementTraits<K>,
class VTraits = CElementTraits<V>>
class CRBTree
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
Typedefs publics
Nom | Description |
---|---|
CRBTree ::KINARGTYPE | Type utilisé lorsqu’une clé est passée en tant qu’argument d’entrée. |
CRBTree ::KOUTARGTYPE | Type utilisé lorsqu’une clé est retournée en tant qu’argument de sortie. |
CRBTree ::VINARGTYPE | Type utilisé lorsqu’une valeur est passée en tant qu’argument d’entrée. |
CRBTree ::VOUTARGTYPE | Type utilisé lorsqu’une valeur est passée en tant qu’argument de sortie. |
Classes publiques
Nom | Description |
---|---|
CRBTree ::CPair, classe | Classe contenant les éléments clé et valeur. |
Constructeurs publics
Nom | Description |
---|---|
CRBTree ::~CRBTree | Destructeur. |
Méthodes publiques
Nom | Description |
---|---|
CRBTree ::FindFirstKeyAfter | Appelez cette méthode pour rechercher la position de l’élément qui utilise la clé disponible suivante. |
CRBTree ::GetAt | Appelez cette méthode pour obtenir l’élément à une position donnée dans l’arborescence. |
CRBTree ::GetCount | Appelez cette méthode pour obtenir le nombre d’éléments dans l’arborescence. |
CRBTree ::GetHeadPosition | Appelez cette méthode pour obtenir la valeur de position de l’élément à la tête de l’arborescence. |
CRBTree ::GetKeyAt | Appelez cette méthode pour obtenir la clé à partir d’une position donnée dans l’arborescence. |
CRBTree ::GetNext | Appelez cette méthode pour obtenir un pointeur vers un élément stocké dans l’objet CRBTree et avancer la position vers l’élément suivant. |
CRBTree ::GetNextAssoc | Appelez cette méthode pour obtenir la clé et la valeur d’un élément stocké dans la carte et avancer la position vers l’élément suivant. |
CRBTree ::GetNextKey | Appelez cette méthode pour obtenir la clé d’un élément stocké dans l’arborescence et avancer la position vers l’élément suivant. |
CRBTree ::GetNextValue | Appelez cette méthode pour obtenir la valeur d’un élément stocké dans l’arborescence et avancer la position vers l’élément suivant. |
CRBTree ::GetPrev | Appelez cette méthode pour obtenir un pointeur vers un élément stocké dans l’objet CRBTree , puis mettez à jour la position vers l’élément précédent. |
CRBTree ::GetTailPosition | Appelez cette méthode pour obtenir la valeur de position de l’élément à la fin de l’arborescence. |
CRBTree ::GetValueAt | Appelez cette méthode pour récupérer la valeur stockée à une position donnée dans l’objet CRBTree . |
CRBTree ::IsEmpty | Appelez cette méthode pour tester un objet d’arborescence vide. |
CRBTree ::RemoveAll | Appelez cette méthode pour supprimer tous les éléments de l’objet CRBTree . |
CRBTree ::RemoveAt | Appelez cette méthode pour supprimer l’élément à la position donnée dans l’objet CRBTree . |
CRBTree ::SetValueAt | Appelez cette méthode pour modifier la valeur stockée à une position donnée dans l’objet CRBTree . |
Notes
Un arbre Rouge-Noir est un arbre de recherche binaire qui utilise un bit d’informations supplémentaire par nœud pour s’assurer qu’il reste « équilibré », c’est-à-dire que la hauteur de l’arbre ne croît pas de manière disproportionnée et affecte les performances.
Cette classe de modèle est conçue pour être utilisée par CRBMap et CRBMultiMap. La majeure partie des méthodes qui composent ces classes dérivées sont fournies par CRBTree
.
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.
Spécifications
En-tête : atlcoll.h
CRBTree ::CPair, classe
Classe contenant les éléments clé et valeur.
class CPair : public __POSITION
Notes
Cette classe est utilisée par les méthodes CRBTree ::GetAt, CRBTree ::GetNext et CRBTree ::GetPrev pour accéder aux éléments de clé et de valeur stockés dans l’arborescence.
Les membres sont les suivants :
Membre de données | Description |
---|---|
m_key |
Membre de données stockant l’élément clé. |
m_value |
Membre de données stockant l’élément valeur. |
CRBTree ::~CRBTree
Destructeur.
~CRBTree() throw();
Notes
Libère toutes les ressources allouées. Appelle CRBTree ::RemoveAll pour supprimer tous les éléments.
CRBTree ::FindFirstKeyAfter
Appelez cette méthode pour rechercher la position de l’élément qui utilise la clé disponible suivante.
POSITION FindFirstKeyAfter(KINARGTYPE key) const throw();
Paramètres
key
Valeur de clé.
Valeur de retour
Retourne la valeur de position de l’élément qui utilise la clé disponible suivante. S’il n’y a plus d’éléments, NULL est retourné.
Notes
Cette méthode facilite la traversée de l’arborescence sans avoir à calculer les valeurs de position au préalable.
CRBTree ::GetAt
Appelez cette méthode pour obtenir l’élément à une position donnée dans l’arborescence.
CPair* GetAt(POSITION pos) throw();
const CPair* GetAt(POSITION pos) const throw();
void GetAt(POSITION pos, KOUTARGTYPE key, VOUTARGTYPE value) const;
Paramètres
pos
Valeur de la position.
key
Variable qui reçoit la clé.
valeur
Variable qui reçoit la valeur.
Valeur de retour
Les deux premiers formulaires retournent un pointeur vers un CPair. Le troisième formulaire obtient une clé et une valeur pour la position donnée.
Notes
La valeur de position peut être déterminée précédemment avec un appel à une méthode telle que CRBTree ::GetHeadPosition ou CRBTree ::GetTailPosition.
Dans les builds de débogage, une défaillance d’assertion se produit si pos est égal à NULL.
CRBTree ::GetCount
Appelez cette méthode pour obtenir le nombre d’éléments dans l’arborescence.
size_t GetCount() const throw();
Valeur de retour
Retourne le nombre d’éléments (chaque paire clé/valeur est un élément) stocké dans l’arborescence.
CRBTree ::GetHeadPosition
Appelez cette méthode pour obtenir la valeur de position de l’élément à la tête de l’arborescence.
POSITION GetHeadPosition() const throw();
Valeur de retour
Retourne la valeur de position de l’élément à la tête de l’arborescence.
Notes
La valeur retournée par GetHeadPosition
peut être utilisée avec des méthodes telles que CRBTree ::GetKeyAt ou CRBTree ::GetNext pour parcourir l’arborescence et récupérer les valeurs.
CRBTree ::GetKeyAt
Appelez cette méthode pour obtenir la clé à partir d’une position donnée dans l’arborescence.
const K& GetKeyAt(POSITION pos) const throw();
Paramètres
pos
Valeur de la position.
Valeur de retour
Retourne la clé stockée à la position dans l’arborescence.
Notes
Si la pos n’est pas une valeur de position valide, les résultats sont imprévisibles. Dans les builds de débogage, une défaillance d’assertion se produit si pos est égal à NULL.
CRBTree ::GetNext
Appelez cette méthode pour obtenir un pointeur vers un élément stocké dans l’objet CRBTree
et avancer la position vers l’élément suivant.
const CPair* GetNext(POSITION& pos) const throw();
CPair* GetNext(POSITION& pos) throw();
Paramètres
pos
Compteur de position, retourné par un appel précédent à des méthodes telles que CRBTree ::GetHeadPosition ou CRBTree ::FindFirstKeyAfter.
Valeur de retour
Retourne un pointeur vers la valeur CPair suivante dans l’arborescence.
Notes
Le compteur de position de pos est mis à jour après chaque appel. Si l’élément récupéré est le dernier de l’arborescence, pos a la valeur NULL.
CRBTree ::GetNextAssoc
Appelez cette méthode pour obtenir la clé et la valeur d’un élément stocké dans la carte et avancer la position vers l’élément suivant.
void GetNextAssoc(
POSITION& pos,
KOUTARGTYPE key,
VOUTARGTYPE value) const;
Paramètres
pos
Compteur de position, retourné par un appel précédent à des méthodes telles que CRBTree ::GetHeadPosition ou CRBTree ::FindFirstKeyAfter.
key
Paramètre de modèle spécifiant le type de la clé de l’arborescence.
valeur
Paramètre de modèle spécifiant le type de la valeur de l’arborescence.
Notes
Le compteur de position de pos est mis à jour après chaque appel. Si l’élément récupéré est le dernier de l’arborescence, pos a la valeur NULL.
CRBTree ::GetNextKey
Appelez cette méthode pour obtenir la clé d’un élément stocké dans l’arborescence et avancer la position vers l’élément suivant.
const K& GetNextKey(POSITION& pos) const throw();
Paramètres
pos
Compteur de position, retourné par un appel précédent à des méthodes telles que CRBTree ::GetHeadPosition ou CRBTree ::FindFirstKeyAfter.
Valeur de retour
Retourne une référence à la clé suivante dans l’arborescence.
Notes
Met à jour le compteur de position actuel, pos. S’il n’y a plus d’entrées dans l’arborescence, le compteur de position est défini sur NULL.
CRBTree ::GetNextValue
Appelez cette méthode pour obtenir la valeur d’un élément stocké dans l’arborescence et avancer la position vers l’élément suivant.
const V& GetNextValue(POSITION& pos) const throw();
V& GetNextValue(POSITION& pos) throw();
Paramètres
pos
Compteur de position, retourné par un appel précédent à des méthodes telles que CRBTree ::GetHeadPosition ou CRBTree ::FindFirstKeyAfter.
Valeur de retour
Retourne une référence à la valeur suivante dans l’arborescence.
Notes
Met à jour le compteur de position actuel, pos. S’il n’y a plus d’entrées dans l’arborescence, le compteur de position est défini sur NULL.
CRBTree ::GetPrev
Appelez cette méthode pour obtenir un pointeur vers un élément stocké dans l’objet CRBTree
, puis mettez à jour la position vers l’élément précédent.
const CPair* GetPrev(POSITION& pos) const throw();
CPair* GetPrev(POSITION& pos) throw();
Paramètres
pos
Compteur de position, retourné par un appel précédent à des méthodes telles que CRBTree ::GetHeadPosition ou CRBTree ::FindFirstKeyAfter.
Valeur de retour
Retourne un pointeur vers la valeur CPair précédente stockée dans l’arborescence.
Notes
Met à jour le compteur de position actuel, pos. S’il n’y a plus d’entrées dans l’arborescence, le compteur de position est défini sur NULL.
CRBTree ::GetTailPosition
Appelez cette méthode pour obtenir la valeur de position de l’élément à la fin de l’arborescence.
POSITION GetTailPosition() const throw();
Valeur de retour
Retourne la valeur de position de l’élément à la fin de l’arborescence.
Notes
La valeur retournée par GetTailPosition
peut être utilisée avec des méthodes telles que CRBTree ::GetKeyAt ou CRBTree ::GetPrev pour parcourir l’arborescence et récupérer les valeurs.
CRBTree ::GetValueAt
Appelez cette méthode pour récupérer la valeur stockée à une position donnée dans l’objet CRBTree
.
const V& GetValueAt(POSITION pos) const throw();
V& GetValueAt(POSITION pos) throw();
Paramètres
pos
Compteur de position, retourné par un appel précédent à des méthodes telles que CRBTree ::GetHeadPosition ou CRBTree ::FindFirstKeyAfter.
Valeur de retour
Retourne une référence à la valeur stockée à la position donnée dans l’objet CRBTree
.
CRBTree ::IsEmpty
Appelez cette méthode pour tester un objet d’arborescence vide.
bool IsEmpty() const throw();
Valeur de retour
Retourne TRUE si l’arborescence est vide, FALSE sinon.
CRBTree ::KINARGTYPE
Type utilisé lorsqu’une clé est passée en tant qu’argument d’entrée.
typedef KTraits::INARGTYPE KINARGTYPE;
CRBTree ::KOUTARGTYPE
Type utilisé lorsqu’une clé est retournée en tant qu’argument de sortie.
typedef KTraits::OUTARGTYPE KOUTARGTYPE;
CRBTree ::RemoveAll
Appelez cette méthode pour supprimer tous les éléments de l’objet CRBTree
.
void RemoveAll() throw();
Notes
Efface l’objet CRBTree
, libérant la mémoire utilisée pour stocker les éléments.
CRBTree ::RemoveAt
Appelez cette méthode pour supprimer l’élément à la position donnée dans l’objet CRBTree
.
void RemoveAt(POSITION pos) throw();
Paramètres
pos
Compteur de position, retourné par un appel précédent à des méthodes telles que CRBTree ::GetHeadPosition ou CRBTree ::FindFirstKeyAfter.
Notes
Supprime la paire clé/valeur stockée à la position spécifiée. La mémoire utilisée pour stocker l’élément est libérée. La position référencée par pos devient non valide et alors que la position d’autres éléments de l’arborescence reste valide, elles ne conservent pas nécessairement le même ordre.
CRBTree ::SetValueAt
Appelez cette méthode pour modifier la valeur stockée à une position donnée dans l’objet CRBTree
.
void SetValueAt(POSITION pos, VINARGTYPE value);
Paramètres
pos
Compteur de position, retourné par un appel précédent à des méthodes telles que CRBTree ::GetHeadPosition ou CRBTree ::FindFirstKeyAfter.
valeur
Valeur à ajouter à l’objet CRBTree
.
Notes
Modifie l’élément valeur stocké à la position donnée dans l’objet CRBTree
.
CRBTree ::VINARGTYPE
Type utilisé lorsqu’une valeur est passée en tant qu’argument d’entrée.
typedef VTraits::INARGTYPE VINARGTYPE;
CRBTree ::VOUTARGTYPE
Type utilisé lorsqu’une valeur est passée en tant qu’argument de sortie.
typedef VTraits::OUTARGTYPE VOUTARGTYPE;