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 vertegenwoordigt een toewijzingsstructuur met behulp van een Red-Black binaire structuur.
Syntaxis
template <typename K,
typename V,
class KTraits = CElementTraits<K>,
class VTraits = CElementTraits<V>>
class CRBMap : public CRBTree<K, V, KTraits, VTraits>
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 constructors
| Naam | Description |
|---|---|
| CRBMap::CRBMap | De constructor. |
| CRBMap::~CRBMap | De destructor. |
Openbare methoden
| Naam | Description |
|---|---|
| CRBMap::Opzoeken | Roep deze methode aan om sleutels of waarden in het CRBMap object op te zoeken. |
| CRBMap::RemoveKey | Roep deze methode aan om een element uit het CRBMap object te verwijderen, op basis van de sleutel. |
| CRBMap::SetAt | Roep deze methode aan om een elementpaar in de kaart in te voegen. |
Opmerkingen
CRBMap biedt ondersteuning voor een toewijzingsmatrix van elk bepaald type, het beheren van een geordende matrix van sleutelelementen en de bijbehorende waarden. Elke sleutel kan slechts één gekoppelde waarde hebben. Elementen (bestaande uit een sleutel en een waarde) worden opgeslagen in een binaire structuur, met behulp van de methode CRBMap::SetAt . Elementen kunnen worden verwijderd met behulp van de methode CRBMap::RemoveKey , waarmee het element wordt verwijderd met de opgegeven sleutelwaarde.
Doorkruising van de boom wordt mogelijk gemaakt met methoden zoals CRBTree::GetHeadPosition, CRBTree::GetNext en CRBTree::GetNextValue.
De KTraits - en VTraits-parameters zijn eigenschappenklassen die aanvullende code bevatten die nodig is om elementen te kopiëren of te verplaatsen.
CRBMap is afgeleid van CRBTree, waarmee een binaire structuur wordt geïmplementeerd met behulp van het Red-Black algoritme.
CRBMultiMap is een variatie die meerdere waarden voor elke sleutel toestaat. Het is ook afgeleid van CRBTree, en dus deelt veel functies met CRBMap.
Een alternatief voor beide CRBMap en CRBMultiMap wordt aangeboden door de CAtlMap-klasse . Wanneer er slechts een klein aantal elementen moet worden opgeslagen, kunt u in plaats daarvan de klasse CSimpleMap gebruiken.
Zie ATL-verzamelingsklassen voor een volledigere bespreking van de verschillende verzamelingsklassen en hun functies en prestatiekenmerken.
Overnamehiërarchie
CRBMap
Requirements
Koptekst: atlcoll.h
CRBMap::CRBMap
De constructor.
explicit CRBMap(size_t nBlockSize = 10) throw();
Parameterwaarden
nBlockSize
De blokgrootte.
Opmerkingen
De parameter nBlockSize is een meting van de hoeveelheid geheugen die is toegewezen wanneer een nieuw element is vereist. Grotere blokgrootten verminderen aanroepen naar geheugentoewijzingsroutines, maar gebruiken meer resources. Met de standaardwaarde wordt ruimte voor 10 elementen tegelijk toegewezen.
Raadpleeg de documentatie voor de basisklasse CRBTree voor informatie over de andere beschikbare methoden.
Example
// 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
De destructor.
~CRBMap() throw();
Opmerkingen
Alle toegewezen resources worden vrijgemaakt.
Raadpleeg de documentatie voor de basisklasse CRBTree voor informatie over de andere beschikbare methoden.
CRBMap::Opzoeken
Roep deze methode aan om sleutels of waarden in het CRBMap object op te zoeken.
bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const throw(...);
const CPair* Lookup(KINARGTYPE key) const throw();
CPair* Lookup(KINARGTYPE key) throw();
Parameterwaarden
sleutel
Hiermee geeft u de sleutel op waarmee het element wordt geïdentificeerd dat moet worden opgezoekd.
value
Variabele die de opgezoekde waarde ontvangt.
Retourwaarde
De eerste vorm van de methode retourneert waar als de sleutel wordt gevonden, anders onwaar. De tweede en derde vorm retourneren een aanwijzer naar een CPair.
Opmerkingen
Raadpleeg de documentatie voor de basisklasse CRBTree voor informatie over de andere beschikbare methoden.
Example
// Look up the value for a key of 0
double v;
myMap.Lookup(0,v);
CRBMap::RemoveKey
Roep deze methode aan om een element uit het CRBMap object te verwijderen, op basis van de sleutel.
bool RemoveKey(KINARGTYPE key) throw();
Parameterwaarden
sleutel
De sleutel die overeenkomt met het elementpaar dat u wilt verwijderen.
Retourwaarde
Retourneert waar als de sleutel wordt gevonden en verwijderd, onwaar bij fout.
Opmerkingen
Raadpleeg de documentatie voor de basisklasse CRBTree voor informatie over de andere beschikbare methoden.
Example
// Remove an element, based on the key of 0
ATLVERIFY(myMap.RemoveKey(0) == true);
CRBMap::SetAt
Roep deze methode aan om een elementpaar in de kaart in te voegen.
POSITION SetAt(
KINARGTYPE key,
VINARGTYPE value) throw(...);
Parameterwaarden
sleutel
De sleutelwaarde die moet worden toegevoegd aan het CRBMap object.
value
De waarde die moet worden toegevoegd aan het CRBMap object.
Retourwaarde
Retourneert de positie van het sleutel-waarde-elementpaar in het CRBMap object.
Opmerkingen
SetAt vervangt een bestaand element als er een overeenkomende sleutel wordt gevonden. Als de sleutel niet wordt gevonden, wordt er een nieuw sleutel-/waardepaar gemaakt.
Raadpleeg de documentatie voor de basisklasse CRBTree voor informatie over de andere beschikbare methoden.
Example
// Add an element to the map, with a key of 0
myMap.SetAt(0,1.1);
Zie ook
CRBTree-klasse
CAtlMap-klasse
CRBMultiMap-klasse
Overzicht van klassen