Share via


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

CRBTree

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