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.
B
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 CAtlMap
allen 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 nach Pos verwiesen wird, wird ungültig, und während die POSITION aller anderen Elemente in der Karte gültig bleibt, 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
B
Der Wertelementtyp.