Share via


CRBTree-klasse

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse biedt methoden voor het maken en gebruiken van een Red-Black boomstructuur.

Syntaxis

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

Parameterwaarden

K
Het type sleutelelement.

V
Het waardeelementtype.

KTraits
De code die wordt gebruikt om sleutelelementen te kopiëren of te verplaatsen. Zie CElementTraits Class voor meer informatie.

VTraits
De code die wordt gebruikt voor het kopiëren of verplaatsen van waarde-elementen.

Leden

Openbare typedefs

Naam Description
CRBTree::KINARGTYPE Type dat wordt gebruikt wanneer een sleutel wordt doorgegeven als invoerargument.
CRBTree::KOUTARGTYPE Type dat wordt gebruikt wanneer een sleutel wordt geretourneerd als een uitvoerargument.
CRBTree::VINARGTYPE Type dat wordt gebruikt wanneer een waarde wordt doorgegeven als invoerargument.
CRBTree::VOUTARGTYPE Type dat wordt gebruikt wanneer een waarde wordt doorgegeven als een uitvoerargument.

Openbare klassen

Naam Description
CRBTree::CPair-klasse Een klasse met de sleutel- en waarde-elementen.

Openbare constructors

Naam Description
CRBTree::~CRBTree De destructor.

Openbare methoden

Naam Description
CRBTree::FindFirstKeyAfter Roep deze methode aan om de positie te vinden van het element dat gebruikmaakt van de volgende beschikbare sleutel.
CRBTree::GetAt Roep deze methode aan om het element op een bepaalde positie in de structuur op te halen.
CRBTree::GetCount Roep deze methode aan om het aantal elementen in de structuur op te halen.
CRBTree::GetHeadPosition Roep deze methode aan om de positiewaarde voor het element aan de kop van de structuur op te halen.
CRBTree::GetKeyAt Roep deze methode aan om de sleutel op te halen van een bepaalde positie in de structuur.
CRBTree::GetNext Roep deze methode aan om een aanwijzer te verkrijgen naar een element dat is opgeslagen in het CRBTree object en ga naar het volgende element.
CRBTree::GetNextAssoc Roep deze methode aan om de sleutel en waarde op te halen van een element dat is opgeslagen in de kaart en de positie naar het volgende element te verplaatsen.
CRBTree::GetNextKey Roep deze methode aan om de sleutel op te halen van een element dat is opgeslagen in de structuur en de positie naar het volgende element te verplaatsen.
CRBTree::GetNextValue Roep deze methode aan om de waarde op te halen van een element dat is opgeslagen in de structuur en de positie naar het volgende element te verplaatsen.
CRBTree::GetPrev Roep deze methode aan om een aanwijzer te verkrijgen naar een element dat is opgeslagen in het CRBTree object en werk vervolgens de positie bij naar het vorige element.
CRBTree::GetTailPosition Roep deze methode aan om de positiewaarde voor het element aan de staart van de structuur op te halen.
CRBTree::GetValueAt Roep deze methode aan om de waarde op te halen die is opgeslagen op een bepaalde positie in het CRBTree object.
CRBTree::Isempty Roep deze methode aan om te testen op een leeg structuurobject.
CRBTree::RemoveAll Roep deze methode aan om alle elementen uit het CRBTree object te verwijderen.
CRBTree::RemoveAt Roep deze methode aan om het element op de opgegeven positie in het CRBTree object te verwijderen.
CRBTree::SetValueAt Roep deze methode aan om de waarde te wijzigen die is opgeslagen op een bepaalde positie in het CRBTree object.

Opmerkingen

Een Red-Black boomstructuur is een binaire zoekstructuur die een extra hoeveelheid informatie per knooppunt gebruikt om ervoor te zorgen dat deze 'evenwichtig' blijft, dat wil gezegd, de boomhoogte niet onevenredig groot wordt en de prestaties beïnvloedt.

Deze sjabloonklasse is ontworpen voor gebruik door CRBMap en CRBMultiMap. Het grootste deel van de methoden waaruit deze afgeleide klassen bestaan, worden geleverd door CRBTree.

Zie ATL-verzamelingsklassen voor een volledigere bespreking van de verschillende verzamelingsklassen en hun functies en prestatiekenmerken.

Requirements

Koptekst: atlcoll.h

CRBTree::CPair-klasse

Een klasse met de sleutel- en waarde-elementen.

class CPair : public __POSITION

Opmerkingen

Deze klasse wordt gebruikt door de methoden CRBTree::GetAt, CRBTree::GetNext en CRBTree::GetPrev voor toegang tot de sleutel- en waarde-elementen die zijn opgeslagen in de structuur van de structuur.

De leden zijn als volgt:

Gegevenslid Description
m_key Het gegevenslid dat het sleutelelement opslaat.
m_value Het gegevenslid dat het waardeelement opslaat.

CRBTree::~CRBTree

De destructor.

~CRBTree() throw();

Opmerkingen

Alle toegewezen resources worden vrijgemaakt. Roept CRBTree::RemoveAll aan om alle elementen te verwijderen.

CRBTree::FindFirstKeyAfter

Roep deze methode aan om de positie te vinden van het element dat gebruikmaakt van de volgende beschikbare sleutel.

POSITION FindFirstKeyAfter(KINARGTYPE key) const throw();

Parameterwaarden

sleutel
Een sleutelwaarde.

Retourwaarde

Retourneert de positiewaarde van het element dat gebruikmaakt van de volgende beschikbare sleutel. Als er geen elementen meer zijn, wordt NULL geretourneerd.

Opmerkingen

Met deze methode kunt u eenvoudig de structuur doorlopen zonder dat u vooraf positiewaarden hoeft te berekenen.

CRBTree::GetAt

Roep deze methode aan om het element op een bepaalde positie in de structuur op te halen.

CPair* GetAt(POSITION pos) throw();
const CPair* GetAt(POSITION pos) const throw();
void GetAt(POSITION pos, KOUTARGTYPE key, VOUTARGTYPE value) const;

Parameterwaarden

Pos
De positiewaarde.

sleutel
De variabele die de sleutel ontvangt.

value
De variabele die de waarde ontvangt.

Retourwaarde

De eerste twee formulieren retourneren een aanwijzer naar een CPair. Het derde formulier verkrijgt een sleutel en een waarde voor de opgegeven positie.

Opmerkingen

De positiewaarde kan eerder worden bepaald met een aanroep naar een methode zoals CRBTree::GetHeadPosition of CRBTree::GetTailPosition.

In builds voor foutopsporing treedt er een assertiefout op als pos gelijk is aan NULL.

CRBTree::GetCount

Roep deze methode aan om het aantal elementen in de structuur op te halen.

size_t GetCount() const throw();

Retourwaarde

Retourneert het aantal elementen (elk sleutel/waardepaar is één element) dat is opgeslagen in de structuur.

CRBTree::GetHeadPosition

Roep deze methode aan om de positiewaarde voor het element aan de kop van de structuur op te halen.

POSITION GetHeadPosition() const throw();

Retourwaarde

Retourneert de positiewaarde voor het element aan de kop van de boomstructuur.

Opmerkingen

De waarde die wordt geretourneerd door GetHeadPosition , kan worden gebruikt met methoden zoals CRBTree::GetKeyAt of CRBTree::GetNext om de structuur te doorlopen en waarden op te halen.

CRBTree::GetKeyAt

Roep deze methode aan om de sleutel op te halen van een bepaalde positie in de structuur.

const K& GetKeyAt(POSITION pos) const throw();

Parameterwaarden

Pos
De positiewaarde.

Retourwaarde

Retourneert de sleutel die is opgeslagen op positiepositie in de boomstructuur.

Opmerkingen

Als pos een ongeldige positiewaarde is, zijn de resultaten onvoorspelbaar. In builds voor foutopsporing treedt er een assertiefout op als pos gelijk is aan NULL.

CRBTree::GetNext

Roep deze methode aan om een aanwijzer te verkrijgen naar een element dat is opgeslagen in het CRBTree object en ga naar het volgende element.

const CPair* GetNext(POSITION& pos) const throw();
CPair* GetNext(POSITION& pos) throw();

Parameterwaarden

Pos
De positieteller, geretourneerd door een eerdere aanroep naar methoden zoals CRBTree::GetHeadPosition of CRBTree::FindFirstKeyAfter.

Retourwaarde

Retourneert een aanwijzer naar de volgende CPair-waarde in de structuur.

Opmerkingen

De pospositieteller wordt na elke aanroep bijgewerkt. Als het opgehaalde element de laatste in de structuur is, wordt pos ingesteld op NULL.

CRBTree::GetNextAssoc

Roep deze methode aan om de sleutel en waarde op te halen van een element dat is opgeslagen in de kaart en de positie naar het volgende element te verplaatsen.

void GetNextAssoc(
    POSITION& pos,
    KOUTARGTYPE key,
    VOUTARGTYPE value) const;

Parameterwaarden

Pos
De positieteller, geretourneerd door een eerdere aanroep naar methoden zoals CRBTree::GetHeadPosition of CRBTree::FindFirstKeyAfter.

sleutel
Sjabloonparameter die het type van de sleutel van de structuur opgeeft.

value
Sjabloonparameter die het type van de waarde van de structuur aangeeft.

Opmerkingen

De pospositieteller wordt na elke aanroep bijgewerkt. Als het opgehaalde element de laatste in de structuur is, wordt pos ingesteld op NULL.

CRBTree::GetNextKey

Roep deze methode aan om de sleutel op te halen van een element dat is opgeslagen in de structuur en de positie naar het volgende element te verplaatsen.

const K& GetNextKey(POSITION& pos) const throw();

Parameterwaarden

Pos
De positieteller, geretourneerd door een eerdere aanroep naar methoden zoals CRBTree::GetHeadPosition of CRBTree::FindFirstKeyAfter.

Retourwaarde

Retourneert een verwijzing naar de volgende sleutel in de structuur.

Opmerkingen

Hiermee werkt u de huidige positieteller bij, pos. Als er geen vermeldingen meer in de structuur staan, wordt de positieteller ingesteld op NULL.

CRBTree::GetNextValue

Roep deze methode aan om de waarde op te halen van een element dat is opgeslagen in de structuur en de positie naar het volgende element te verplaatsen.

const V& GetNextValue(POSITION& pos) const throw();
V& GetNextValue(POSITION& pos) throw();

Parameterwaarden

Pos
De positieteller, geretourneerd door een eerdere aanroep naar methoden zoals CRBTree::GetHeadPosition of CRBTree::FindFirstKeyAfter.

Retourwaarde

Retourneert een verwijzing naar de volgende waarde in de structuur.

Opmerkingen

Hiermee werkt u de huidige positieteller bij, pos. Als er geen vermeldingen meer in de structuur staan, wordt de positieteller ingesteld op NULL.

CRBTree::GetPrev

Roep deze methode aan om een aanwijzer te verkrijgen naar een element dat is opgeslagen in het CRBTree object en werk vervolgens de positie bij naar het vorige element.

const CPair* GetPrev(POSITION& pos) const throw();
CPair* GetPrev(POSITION& pos) throw();

Parameterwaarden

Pos
De positieteller, geretourneerd door een eerdere aanroep naar methoden zoals CRBTree::GetHeadPosition of CRBTree::FindFirstKeyAfter.

Retourwaarde

Retourneert een aanwijzer naar de vorige CPair-waarde die is opgeslagen in de structuur.

Opmerkingen

Hiermee werkt u de huidige positieteller bij, pos. Als er geen vermeldingen meer in de structuur staan, wordt de positieteller ingesteld op NULL.

CRBTree::GetTailPosition

Roep deze methode aan om de positiewaarde voor het element aan de staart van de structuur op te halen.

POSITION GetTailPosition() const throw();

Retourwaarde

Retourneert de positiewaarde voor het element aan de staart van de boom.

Opmerkingen

De waarde die wordt geretourneerd door GetTailPosition , kan worden gebruikt met methoden zoals CRBTree::GetKeyAt of CRBTree::GetPrev om de structuur te doorlopen en waarden op te halen.

CRBTree::GetValueAt

Roep deze methode aan om de waarde op te halen die is opgeslagen op een bepaalde positie in het CRBTree object.

const V& GetValueAt(POSITION pos) const throw();
V& GetValueAt(POSITION pos) throw();

Parameterwaarden

Pos
De positieteller, geretourneerd door een eerdere aanroep naar methoden zoals CRBTree::GetHeadPosition of CRBTree::FindFirstKeyAfter.

Retourwaarde

Retourneert een verwijzing naar de waarde die is opgeslagen op de opgegeven positie in het CRBTree object.

CRBTree::Isempty

Roep deze methode aan om te testen op een leeg structuurobject.

bool IsEmpty() const throw();

Retourwaarde

Retourneert WAAR als de structuur leeg is, anders ONWAAR.

CRBTree::KINARGTYPE

Type dat wordt gebruikt wanneer een sleutel wordt doorgegeven als invoerargument.

typedef KTraits::INARGTYPE KINARGTYPE;

CRBTree::KOUTARGTYPE

Type dat wordt gebruikt wanneer een sleutel wordt geretourneerd als een uitvoerargument.

typedef KTraits::OUTARGTYPE KOUTARGTYPE;

CRBTree::RemoveAll

Roep deze methode aan om alle elementen uit het CRBTree object te verwijderen.

void RemoveAll() throw();

Opmerkingen

Hiermee wordt het CRBTree object gewist, waardoor het geheugen wordt vrijgemaakt dat wordt gebruikt om de elementen op te slaan.

CRBTree::RemoveAt

Roep deze methode aan om het element op de opgegeven positie in het CRBTree object te verwijderen.

void RemoveAt(POSITION pos) throw();

Parameterwaarden

Pos
De positieteller, geretourneerd door een eerdere aanroep naar methoden zoals CRBTree::GetHeadPosition of CRBTree::FindFirstKeyAfter.

Opmerkingen

Hiermee verwijdert u het sleutel-waardepaar dat is opgeslagen op de opgegeven positie. Het geheugen dat wordt gebruikt om het element op te slaan, wordt vrijgemaakt. De positie waarnaar wordt verwezen door pos , wordt ongeldig en terwijl de POSITIE van andere elementen in de structuur geldig blijft, behouden ze niet noodzakelijkerwijs dezelfde volgorde.

CRBTree::SetValueAt

Roep deze methode aan om de waarde te wijzigen die is opgeslagen op een bepaalde positie in het CRBTree object.

void SetValueAt(POSITION pos, VINARGTYPE value);

Parameterwaarden

Pos
De positieteller, geretourneerd door een eerdere aanroep naar methoden zoals CRBTree::GetHeadPosition of CRBTree::FindFirstKeyAfter.

value
De waarde die moet worden toegevoegd aan het CRBTree object.

Opmerkingen

Hiermee wijzigt u het waarde-element dat is opgeslagen op de opgegeven positie in het CRBTree object.

CRBTree::VINARGTYPE

Type dat wordt gebruikt wanneer een waarde wordt doorgegeven als invoerargument.

typedef VTraits::INARGTYPE VINARGTYPE;

CRBTree::VOUTARGTYPE

Type dat wordt gebruikt wanneer een waarde wordt doorgegeven als een uitvoerargument.

typedef VTraits::OUTARGTYPE VOUTARGTYPE;

Zie ook

Overzicht van klassen