Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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;