Teilen über


CAtlMap-Klasse

Diese Klasse stellt Methoden zum Erstellen und Verwalten eines Kartenobjekts bereit.

Syntax

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

Parameter

K
Der Schlüsselelementtyp.

V
Der Wertelementtyp.

KTraits
Der Code zum Kopieren oder Verschieben von Schlüsselelementen. Weitere Details finden Sie unter CElementTraits Class .

VTraits
Der Code zum Kopieren oder Verschieben von Wertelementen.

Member

Öffentliche Typedefs

Name Beschreibung
CAtlMap::KINARGTYPE Typ, der verwendet wird, wenn ein Schlüssel als Eingabeargument übergeben wird
CAtlMap::KOUTARGTYPE Typ, der verwendet wird, wenn ein Schlüssel als Ausgabeargument zurückgegeben wird.
CAtlMap::VINARGTYPE Typ, der verwendet wird, wenn ein Wert als Eingabeargument übergeben wird.
CAtlMap::VOUTARGTYPE Typ, der verwendet wird, wenn ein Wert als Ausgabeargument übergeben wird.

Öffentliche Klassen

Name Beschreibung
CAtlMap::CPair-Klasse Eine Klasse, die die Schlüssel- und Wertelemente enthält.

CPair Data-Elemente

Name Beschreibung
CPair::m_key Das Datenelement, das das Schlüsselelement speichert.
CPair::m_value Das Datenmemm, das das Wertelement speichert.

Öffentliche Konstruktoren

Name Beschreibung
CAtlMap::CAtlMap Der Konstruktor.
CAtlMap::~CAtlMap Der Destruktor.

Öffentliche Methoden

Name Beschreibung
CAtlMap::AssertValid Rufen Sie diese Methode auf, um eine ASSERTION zu verursachen, wenn dies CAtlMap ungültig ist.
CAtlMap::D isableAutoRehash Rufen Sie diese Methode auf, um die automatische Aktualisierung des CAtlMap Objekts zu deaktivieren.
CAtlMap::EnableAutoRehash Rufen Sie diese Methode auf, um die automatische Aktualisierung des CAtlMap Objekts zu aktivieren.
CAtlMap::GetAt Rufen Sie diese Methode auf, um das Element an einer angegebenen Position in der Karte zurückzugeben.
CAtlMap::GetCount Rufen Sie diese Methode auf, um die Anzahl der Elemente in der Karte abzurufen.
CAtlMap::GetHashTableSize Rufen Sie diese Methode auf, um die Anzahl der Bins in der Hashtabelle der Karte zu ermitteln.
CAtlMap::GetKeyAt Rufen Sie diese Methode auf, um den Schlüssel abzurufen, der an der angegebenen Position im CAtlMap Objekt gespeichert ist.
CAtlMap::GetNext Rufen Sie diese Methode auf, um einen Zeiger auf das nächste Elementpaar abzurufen, das CAtlMap im Objekt gespeichert ist.
CAtlMap::GetNextAssoc Ruft das nächste Element zum Durchlaufen ab.
CAtlMap::GetNextKey Rufen Sie diese Methode auf, um den nächsten Schlüssel aus dem CAtlMap Objekt abzurufen.
CAtlMap::GetNextValue Rufen Sie diese Methode auf, um den nächsten Wert aus dem CAtlMap Objekt abzurufen.
CAtlMap::GetStartPosition Rufen Sie diese Methode auf, um eine Karteniteration zu starten.
CAtlMap::GetValueAt Rufen Sie diese Methode auf, um den Wert abzurufen, der an einer bestimmten Position im CAtlMap Objekt gespeichert ist.
CAtlMap::InitHashTable Rufen Sie diese Methode auf, um die Hashtabelle zu initialisieren.
CAtlMap::IsEmpty Rufen Sie diese Methode auf, um auf ein leeres Kartenobjekt zu testen.
CAtlMap::Lookup Rufen Sie diese Methode auf, um Schlüssel oder Werte im CAtlMap Objekt nachzuschlagen.
CAtlMap::Rehash Rufen Sie diese Methode auf, um das CAtlMap Objekt neu zu formatieren.
CAtlMap::RemoveAll Rufen Sie diese Methode auf, um alle Elemente aus dem CAtlMap Objekt zu entfernen.
CAtlMap::RemoveAtPos Rufen Sie diese Methode auf, um das Element an der angegebenen Position im CAtlMap Objekt zu entfernen.
CAtlMap::RemoveKey Rufen Sie diese Methode auf, um ein Element aus dem CAtlMap Objekt zu entfernen, je nach Schlüssel.
CAtlMap::SetAt Rufen Sie diese Methode auf, um ein Elementpaar in die Karte einzufügen.
CAtlMap::SetOptimalLoad Rufen Sie diese Methode auf, um die optimale Auslastung des CAtlMap Objekts festzulegen.
CAtlMap::SetValueAt Rufen Sie diese Methode auf, um den Wert zu ändern, der an einer bestimmten Position im CAtlMap Objekt gespeichert ist.

Öffentliche Operatoren

Name Beschreibung
CAtlMap::operator[] Ersetzt oder fügt ein neues Element zum CAtlMap.

Hinweise

CAtlMap bietet Unterstützung für ein Zuordnungsarray eines bestimmten Typs, wobei ein ungeordnetes Array von Schlüsselelementen und den zugehörigen Werten verwaltet wird. Elemente (bestehend aus einem Schlüssel und einem Wert) werden mit einem Hashingalgorithmus gespeichert, sodass eine große Menge an Daten effizient gespeichert und abgerufen werden kann.

Die Parameter "KTraits " und "VTraits " sind Eigenschaftenklassen, die zusätzlichen Code enthalten, der zum Kopieren oder Verschieben von Elementen erforderlich ist.

Eine Alternative zu CAtlMap der CRBMap-Klasse wird angeboten. CRBMap speichert auch Schlüssel-Wert-Paare, weist jedoch unterschiedliche Leistungsmerkmale auf. Die Zeit für das Einfügen eines Elements, das Nachschlagen eines Schlüssels oder das Löschen eines Schlüssels aus einem CRBMap Objekt ist der Reihenfolge log(n), wobei n die Anzahl der Elemente ist. Bei CAtlMapallen diesen Vorgängen dauert es in der Regel eine konstante Zeit, obwohl im schlimmsten Fall Szenarios der Reihenfolge n entsprechen können. Daher ist in einem typischen Fall CAtlMap schneller.

Der andere Unterschied zwischen CRBMap und CAtlMap wird beim Durchlaufen der gespeicherten Elemente deutlich. In einer CRBMap, die Elemente werden in einer sortierten Reihenfolge besucht. In einem CAtlMap, die Elemente sind nicht sortiert, und keine Reihenfolge kann abgeleitet werden.

Wenn eine kleine Anzahl von Elementen gespeichert werden muss, sollten Sie stattdessen die CSimpleMap-Klasse verwenden.

Weitere Informationen finden Sie unter ATL-Auflistungsklassen.

Anforderungen

Kopfzeile: atlcoll.h

CAtlMap::AssertValid

Rufen Sie diese Methode auf, um eine ASSERTION zu verursachen, wenn das CAtlMap Objekt ungültig ist.

void AssertValid() const;

Hinweise

In Debugbuilds führt diese Methode zu einer ASSERTION, wenn das CAtlMap Objekt ungültig ist.

Beispiel

Sehen Sie sich das Beispiel für CAtlMap::CAtlMap an.

CAtlMap::CAtlMap

Der Konstruktor.

CAtlMap(
    UINT nBins = 17,
    float fOptimalLoad = 0.75f,
    float fLoThreshold = 0.25f,
    float fHiThreshold = 2.25f,
    UINT nBlockSize = 10) throw ();

Parameter

nBins
Die Anzahl der Container, die Zeiger auf die gespeicherten Elemente bereitstellen. Eine Erläuterung der Bins finden Sie weiter unten in diesem Thema.

fOptimalLoad
Das optimale Ladeverhältnis.

fLoThreshold
Der niedrigere Schwellenwert für das Lastverhältnis.

fHiThreshold
Der obere Schwellenwert für das Lastverhältnis.

nBlockSize
Die Blockgröße.

Hinweise

CAtlMap verweist auf alle gespeicherten Elemente, indem zuerst ein Index mit einem Hashingalgorithmus für den Schlüssel erstellt wird. Dieser Index verweist auf einen "Bin", der einen Zeiger auf die gespeicherten Elemente enthält. Wenn der Container bereits verwendet wird, wird eine verknüpfte Liste erstellt, um auf die nachfolgenden Elemente zuzugreifen. Das Durchlaufen einer Liste ist langsamer als der direkte Zugriff auf das richtige Element, sodass die Zuordnungsstruktur Speicheranforderungen mit der Leistung ausgleichen muss. Die Standardparameter wurden ausgewählt, um in den meisten Fällen gute Ergebnisse zu erzielen.

Das Ladeverhältnis ist das Verhältnis der Anzahl der Bins zur Anzahl der im Kartenobjekt gespeicherten Elemente. Wenn die Zuordnungsstruktur neu berechnet wird, wird der Wert des fOptimalLoad-Parameters verwendet, um die Anzahl der erforderlichen Bins zu berechnen. Dieser Wert kann mithilfe der CAtlMap::SetOptimalLoad-Methode geändert werden.

Der Parameter fLoThreshold ist der niedrigere Wert, den das Ladeverhältnis erreichen kann, bevor CAtlMap die optimale Größe der Karte neu berechnet wird.

Der Parameter fHiThreshold ist der obere Wert, den das Ladeverhältnis erreichen kann, bevor das CAtlMap Objekt die optimale Größe der Karte neu berechnet.

Dieser Neuberechnungsprozess (als Rehashing bezeichnet) ist standardmäßig aktiviert. Wenn Sie diesen Prozess deaktivieren möchten, rufen Sie vielleicht beim gleichzeitigen Eingeben vieler Daten die CAtlMap::D isableAutoRehash-Methode auf. Reaktivieren Sie sie mit der CAtlMap::EnableAutoRehash-Methode .

Der nBlockSize-Parameter ist ein Maß für die Menge des Arbeitsspeichers, der zugewiesen wird, wenn ein neues Element erforderlich ist. Größere Blockgrößen reduzieren Aufrufe an Speicherzuweisungsroutinen, verwenden jedoch weitere Ressourcen.

Bevor Daten gespeichert werden können, müssen Sie die Hashtabelle mit einem Aufruf von CAtlMap::InitHashTable initialisieren.

Beispiel

// Create a map which stores a double
// value using an integer key

CAtlMap<int, double> mySinTable;
int i;

// Initialize the Hash Table
mySinTable.InitHashTable(257);

// Add items to the map
for (i = 0; i < 90; i++)
   mySinTable[i] = sin((double)i);

// Confirm the map is valid
mySinTable.AssertValid();

// Confirm the number of elements in the map
ATLASSERT(mySinTable.GetCount() == 90);

// Remove elements with even key values
for (i = 0; i < 90; i += 2)
   mySinTable.RemoveKey(i);

// Confirm the number of elements in the map
ATLASSERT(mySinTable.GetCount() == 45);

// Walk through all the elements in the map.
// First, get start position.
POSITION pos;
int key;
double value;
pos = mySinTable.GetStartPosition();

// Now iterate the map, element by element
while (pos != NULL) 
{
   key = mySinTable.GetKeyAt(pos);
   value = mySinTable.GetNextValue(pos);
}

CAtlMap::~CAtlMap

Der Destruktor.

~CAtlMap() throw();

Hinweise

Gibt alle zugeordneten Ressourcen frei.

CAtlMap::CPair-Klasse

Eine Klasse, die die Schlüssel- und Wertelemente enthält.

class CPair : public __POSITION

Hinweise

Diese Klasse wird von den Methoden CAtlMap::GetNext und CAtlMap::Lookup verwendet, um auf die schlüssel- und Wertelemente zuzugreifen, die in der Zuordnungsstruktur gespeichert sind.

CAtlMap::D isableAutoRehash

Rufen Sie diese Methode auf, um die automatische Aktualisierung des CAtlMap Objekts zu deaktivieren.

void DisableAutoRehash() throw();

Hinweise

Wenn die automatische Aktualisierung aktiviert ist (die standardmäßig aktiviert ist), wird die Anzahl der Bins in der Hashtabelle automatisch neu berechnet, wenn der Ladewert (das Verhältnis der Anzahl der Bins zur Anzahl der im Array gespeicherten Elemente) die maximal oder minimalen Werte überschreitet, die zum Zeitpunkt der Erstellung der Karte angegeben wurden.

DisableAutoRehash ist am nützlichsten, wenn der Karte gleichzeitig eine große Anzahl von Elementen hinzugefügt wird. Anstatt den Rehashing-Prozess jedes Mal auszulösen, wenn die Grenzwerte überschritten werden, ist es effizienter, die Elemente aufzurufenDisableAutoRehash, die Elemente hinzuzufügen und schließlich CAtlMap::EnableAutoRehash aufzurufen.

CAtlMap::EnableAutoRehash

Rufen Sie diese Methode auf, um die automatische Aktualisierung des CAtlMap Objekts zu aktivieren.

void EnableAutoRehash() throw();

Hinweise

Wenn die automatische Aktualisierung aktiviert ist (die standardmäßig aktiviert ist), wird die Anzahl der Bins in der Hashtabelle automatisch neu berechnet, wenn der Ladewert (das Verhältnis der Anzahl der Bins zur Anzahl der im Array gespeicherten Elemente) die maximal oder minimalen Werte überschreitet, die zum Zeitpunkt der Erstellung der Karte angegeben werden.

EnableAutoRefresh wird am häufigsten nach einem Aufruf von CAtlMap::D isableAutoRehash verwendet.

CAtlMap::GetAt

Rufen Sie diese Methode auf, um das Element an einer angegebenen Position in der Karte zurückzugeben.

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

CPair* GetAt(POSITION& pos) throw();

Parameter

pos
Der Positionszähler, der von einem vorherigen Aufruf von CAtlMap::GetNextAssoc oder CAtlMap::GetStartPosition zurückgegeben wird.

key
Vorlagenparameter, der den Typ des Schlüssels der Karte angibt.

value
Vorlagenparameter, der den Typ des Kartenwerts angibt.

Rückgabewert

Gibt einen Zeiger auf das aktuelle Paar von Schlüssel-Wert-Elementen zurück, die in der Karte gespeichert sind.

Hinweise

In Debugbuilds tritt ein Assertionsfehler auf, wenn pos gleich NULL ist.

CAtlMap::GetCount

Rufen Sie diese Methode auf, um die Anzahl der Elemente in der Karte abzurufen.

size_t GetCount() const throw();

Rückgabewert

Gibt die Anzahl der Elemente im Kartenobjekt zurück. Ein einzelnes Element ist ein Schlüssel-Wert-Paar.

Beispiel

Sehen Sie sich das Beispiel für CAtlMap::CAtlMap an.

CAtlMap::GetHashTableSize

Rufen Sie diese Methode auf, um die Anzahl der Bins in der Hashtabelle der Karte zu ermitteln.

UINT GetHashTableSize() const throw();

Rückgabewert

Gibt die Anzahl der Bins in der Hashtabelle zurück. Eine Erläuterung finden Sie unter CAtlMap::CAtlMap .

CAtlMap::GetKeyAt

Rufen Sie diese Methode auf, um den Schlüssel abzurufen, der an der angegebenen Position im CAtlMap Objekt gespeichert ist.

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

Parameter

pos
Der Positionszähler, der von einem vorherigen Aufruf von CAtlMap::GetNextAssoc oder CAtlMap::GetStartPosition zurückgegeben wird.

Rückgabewert

Gibt einen Verweis auf den Schlüssel zurück, der an der angegebenen Position im CAtlMap Objekt gespeichert ist.

Beispiel

Sehen Sie sich das Beispiel für CAtlMap::CAtlMap an.

CAtlMap::GetNext

Rufen Sie diese Methode auf, um einen Zeiger auf das nächste Elementpaar abzurufen, das CAtlMap im Objekt gespeichert ist.

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

Parameter

pos
Der Positionszähler, der von einem vorherigen Aufruf von CAtlMap::GetNextAssoc oder CAtlMap::GetStartPosition zurückgegeben wird.

Rückgabewert

Gibt einen Zeiger auf das nächste Paar von Schlüssel-Wert-Elementen zurück, die in der Karte gespeichert sind. Der Pos-Positionszähler wird nach jedem Anruf aktualisiert. Wenn das abgerufene Element der letzte in der Karte ist, wird pos auf NULL festgelegt.

CAtlMap::GetNextAssoc

Ruft das nächste Element zum Durchlaufen ab.

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

Parameter

pos
Der Positionszähler, der von einem vorherigen Aufruf von CAtlMap::GetNextAssoc oder CAtlMap::GetStartPosition zurückgegeben wird.

key
Vorlagenparameter, der den Typ des Schlüssels der Karte angibt.

value
Vorlagenparameter, der den Typ des Kartenwerts angibt.

Hinweise

Der Pos-Positionszähler wird nach jedem Anruf aktualisiert. Wenn das abgerufene Element der letzte in der Karte ist, wird pos auf NULL festgelegt.

CAtlMap::GetNextKey

Rufen Sie diese Methode auf, um den nächsten Schlüssel aus dem CAtlMap Objekt abzurufen.

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

Parameter

pos
Der Positionszähler, der von einem vorherigen Aufruf von CAtlMap::GetNextAssoc oder CAtlMap::GetStartPosition zurückgegeben wird.

Rückgabewert

Gibt einen Verweis auf den nächsten Schlüssel in der Karte zurück.

Hinweise

Aktualisiert den aktuellen Positionszähler pos. Wenn keine weiteren Einträge in der Karte vorhanden sind, wird der Positionszähler auf NULL festgelegt.

CAtlMap::GetNextValue

Rufen Sie diese Methode auf, um den nächsten Wert aus dem CAtlMap Objekt abzurufen.

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

Parameter

pos
Der Positionszähler, der von einem vorherigen Aufruf von CAtlMap::GetNextAssoc oder CAtlMap::GetStartPosition zurückgegeben wird.

Rückgabewert

Gibt einen Verweis auf den nächsten Wert in der Karte zurück.

Hinweise

Aktualisiert den aktuellen Positionszähler pos. Wenn keine weiteren Einträge in der Karte vorhanden sind, wird der Positionszähler auf NULL festgelegt.

Beispiel

Sehen Sie sich das Beispiel für CAtlMap::CAtlMap an.

CAtlMap::GetStartPosition

Rufen Sie diese Methode auf, um eine Karteniteration zu starten.

POSITION GetStartPosition() const throw();

Rückgabewert

Gibt die Startposition zurück, oder NULL wird zurückgegeben, wenn die Karte leer ist.

Hinweise

Rufen Sie diese Methode auf, um eine Karteniteration zu starten, indem Sie einen POSITION-Wert zurückgeben, der an die GetNextAssoc Methode übergeben werden kann.

Hinweis

Die Iterationssequenz ist nicht vorhersehbar.

Beispiel

Sehen Sie sich das Beispiel für CAtlMap::CAtlMap an.

CAtlMap::GetValueAt

Rufen Sie diese Methode auf, um den Wert abzurufen, der an einer bestimmten Position im CAtlMap Objekt gespeichert ist.

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

Parameter

pos
Der Positionszähler, der von einem vorherigen Aufruf von CAtlMap::GetNextAssoc oder CAtlMap::GetStartPosition zurückgegeben wird.

Rückgabewert

Gibt einen Verweis auf den Wert zurück, der an der angegebenen Position im CAtlMap Objekt gespeichert ist.

CAtlMap::InitHashTable

Rufen Sie diese Methode auf, um die Hashtabelle zu initialisieren.

bool InitHashTable(
    UINT nBins,
    bool bAllocNow = true);

Parameter

nBins
Die Anzahl der bins, die von der Hashtabelle verwendet werden. Eine Erläuterung finden Sie unter CAtlMap::CAtlMap .

bAllocNow
Ein Kennzeichen, das anwendet werden soll, wann Arbeitsspeicher zugewiesen werden soll.

Rückgabewert

Gibt WAHR für die erfolgreiche Initialisierung ,FALSE bei Fehler zurück.

Hinweise

InitHashTable muss aufgerufen werden, bevor alle Elemente in der Hashtabelle gespeichert werden. Wenn diese Methode nicht explizit aufgerufen wird, wird sie automatisch aufgerufen, wenn ein Element zum ersten Mal mithilfe der vom CAtlMap Konstruktor angegebenen Bin-Anzahl hinzugefügt wird. Andernfalls wird die Zuordnung mithilfe der neuen Bin-Anzahl initialisiert, die durch den nBins-Parameter angegeben wird.

Wenn der Parameter "bAllocNow " falsch ist, wird der für die Hashtabelle erforderliche Speicher erst zugewiesen, wenn er zuerst erforderlich ist. Dies kann nützlich sein, wenn es unsicher ist, ob die Karte verwendet wird.

Beispiel

Sehen Sie sich das Beispiel für CAtlMap::CAtlMap an.

CAtlMap::IsEmpty

Rufen Sie diese Methode auf, um auf ein leeres Kartenobjekt zu testen.

bool IsEmpty() const throw();

Rückgabewert

Gibt WAHR zurück, wenn die Zuordnung leer ist, andernfalls FALSE.

CAtlMap::KINARGTYPE

Typ, der verwendet wird, wenn ein Schlüssel als Eingabeargument übergeben wird.

typedef KTraits::INARGTYPE KINARGTYPE;

CAtlMap::KOUTARGTYPE

Typ, der verwendet wird, wenn ein Schlüssel als Ausgabeargument zurückgegeben wird.

typedef KTraits::OUTARGTYPE KOUTARGTYPE;

CAtlMap::Lookup

Rufen Sie diese Methode auf, um Schlüssel oder Werte im CAtlMap Objekt nachzuschlagen.

bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const;
const CPair* Lookup(KINARGTYPE key) const throw();
CPair* Lookup(KINARGTYPE key) throw();

Parameter

key
Gibt den Schlüssel an, der das element identifiziert, das nachschlagen soll.

value
Variable, die den Nachschlagewert empfängt.

Rückgabewert

Die erste Form der Methode gibt "true" zurück, wenn der Schlüssel gefunden wird, andernfalls "false". Die zweite und dritte Form geben einen Zeiger auf ein CPair zurück, der als Position für Aufrufe von CAtlMap::GetNext usw. verwendet werden kann.

Hinweise

Lookup verwendet einen Hashingalgorithmus, um das Zuordnungselement schnell zu finden, das einen Schlüssel enthält, der exakt dem angegebenen Schlüsselparameter entspricht.

CAtlMap::operator []

Ersetzt oder fügt ein neues Element zum CAtlMap.

V& operator[](kinargtype key) throw();

Parameter

key
Der Schlüssel des Elements, das hinzugefügt oder ersetzt werden soll.

Rückgabewert

Gibt einen Verweis auf den Wert zurück, der dem angegebenen Schlüssel zugeordnet ist.

Beispiel

Wenn der Schlüssel bereits vorhanden ist, wird das Element ersetzt. Wenn der Schlüssel nicht vorhanden ist, wird ein neues Element hinzugefügt. Sehen Sie sich das Beispiel für CAtlMap::CAtlMap an.

CAtlMap::Rehash

Rufen Sie diese Methode auf, um das CAtlMap Objekt neu zu formatieren.

void Rehash(UINT nBins = 0);

Parameter

nBins
Die neue Anzahl der Container, die in der Hashtabelle verwendet werden sollen. Eine Erläuterung finden Sie unter CAtlMap::CAtlMap .

Hinweise

Wenn nBins 0 ist, CAtlMap berechnet eine angemessene Zahl basierend auf der Anzahl der Elemente in der Karte und der optimalen Ladeeinstellung. Normalerweise ist der Rehashingprozess automatisch, aber wenn CAtlMap::D isableAutoRehash aufgerufen wurde, führt diese Methode die erforderliche Größenänderung aus.

CAtlMap::RemoveAll

Rufen Sie diese Methode auf, um alle Elemente aus dem CAtlMap Objekt zu entfernen.

void RemoveAll() throw();

Hinweise

Löscht das CAtlMap Objekt, wobei der Zum Speichern der Elemente verwendete Speicher freigegeben wird.

CAtlMap::RemoveAtPos

Rufen Sie diese Methode auf, um das Element an der angegebenen Position im CAtlMap Objekt zu entfernen.

void RemoveAtPos(POSITION pos) throw();

Parameter

pos
Der Positionszähler, der von einem vorherigen Aufruf von CAtlMap::GetNextAssoc oder CAtlMap::GetStartPosition zurückgegeben wird.

Hinweise

Entfernt das Schlüssel-Wert-Paar, das an der angegebenen Position gespeichert ist. Der zum Speichern des Elements verwendete Speicher wird freigegeben. Die position, auf die pos verweist, wird ungültig, und während die POSITION aller anderen Elemente in der Karte neu Standard gültig ist, behalten sie nicht unbedingt dieselbe Reihenfolge bei.

CAtlMap::RemoveKey

Rufen Sie diese Methode auf, um ein Element aus dem CAtlMap Objekt zu entfernen, je nach Schlüssel.

bool RemoveKey(KINARGTYPE key) throw();

Parameter

key
Der Schlüssel, der dem Elementpaar entspricht, das Sie entfernen möchten.

Rückgabewert

Gibt TRUE zurück, wenn der Schlüssel gefunden und entfernt wird, FALSE bei Einem Fehler.

Beispiel

Sehen Sie sich das Beispiel für CAtlMap::CAtlMap an.

CAtlMap::SetAt

Rufen Sie diese Methode auf, um ein Elementpaar in die Karte einzufügen.

POSITION SetAt(
    KINARGTYPE key,
    VINARGTYPE value);

Parameter

key
Der Schlüsselwert, der dem CAtlMap Objekt hinzugefügt werden soll.

value
Der Wert, der dem CAtlMap Objekt hinzugefügt werden soll.

Rückgabewert

Gibt die Position des Schlüssel-Wert-Elementpaars im CAtlMap Objekt zurück.

Hinweise

SetAt ersetzt ein vorhandenes Element, wenn ein übereinstimmende Schlüssel gefunden wird. Wenn der Schlüssel nicht gefunden wird, wird ein neues Schlüssel-Wert-Paar erstellt.

CAtlMap::SetOptimalLoad

Rufen Sie diese Methode auf, um die optimale Auslastung des CAtlMap Objekts festzulegen.

void SetOptimalLoad(
    float fOptimalLoad,
    float fLoThreshold,
    float fHiThreshold,
    bool bRehashNow = false);

Parameter

fOptimalLoad
Das optimale Ladeverhältnis.

fLoThreshold
Der niedrigere Schwellenwert für das Lastverhältnis.

fHiThreshold
Der obere Schwellenwert für das Lastverhältnis.

bRehashNow
Flag, das angibt, ob die Hashtabelle neu berechnet werden soll.

Hinweise

Diese Methode definiert den optimalen Ladewert für das CAtlMap Objekt neu. Eine Erläuterung der verschiedenen Parameter finden Sie unter CAtlMap::CAtlMap . Wenn "bRehashNow " wahr ist und die Anzahl der Elemente außerhalb des Minimal- und Höchstwerts liegt, wird die Hashtabelle neu berechnet.

CAtlMap::SetValueAt

Rufen Sie diese Methode auf, um den Wert zu ändern, der an einer bestimmten Position im CAtlMap Objekt gespeichert ist.

void SetValueAt(
    POSITION pos,
    VINARGTYPE value);

Parameter

pos
Der Positionszähler, der von einem vorherigen Aufruf von CAtlMap::GetNextAssoc oder CAtlMap::GetStartPosition zurückgegeben wird.

value
Der Wert, der dem CAtlMap Objekt hinzugefügt werden soll.

Hinweise

Ändert das Wertelement, das an der angegebenen Position im CAtlMap Objekt gespeichert ist.

CAtlMap::VINARGTYPE

Typ, der verwendet wird, wenn ein Wert als Eingabeargument übergeben wird.

typedef VTraits::INARGTYPE VINARGTYPE;

CAtlMap::VOUTARGTYPE

Typ, der verwendet wird, wenn ein Wert als Ausgabeargument übergeben wird.

typedef VTraits::OUTARGTYPE VOUTARGTYPE;

CAtlMap::CPair::m_key

Das Datenelement, das das Schlüsselelement speichert.

const K m_key;

Parameter

K
Der Schlüsselelementtyp.

CAtlMap::CPair::m_value

Das Datenmemm, das das Wertelement speichert.

V  m_value;

Parameter

V
Der Wertelementtyp.

Siehe auch

Beispiel für Festrahmen
UpdatePV-Beispiel
Klassenübersicht