Klasa CAtlMap
Ta klasa udostępnia metody tworzenia obiektu mapy i zarządzania nim.
Składnia
template <typename K,
typename V,
class KTraits = CElementTraits<K>,
class VTraits = CElementTraits<V>>
class CAtlMap
Parametry
K
Typ kluczowego elementu.
V
Typ elementu wartości.
KTraits
Kod używany do kopiowania lub przenoszenia kluczowych elementów. Aby uzyskać więcej informacji, zobacz Klasa CElementTraits.
VTraits
Kod używany do kopiowania lub przenoszenia elementów wartości.
Elementy członkowskie
Definicje typów publicznych
Nazwa/nazwisko | opis |
---|---|
CAtlMap::KINARGTYPE | Typ używany, gdy klucz jest przekazywany jako argument wejściowy |
CAtlMap::KOUTARGTYPE | Typ używany, gdy klucz jest zwracany jako argument wyjściowy. |
CAtlMap::VINARGTYPE | Typ używany, gdy wartość jest przekazywana jako argument wejściowy. |
CAtlMap::VOUTARGTYPE | Typ używany, gdy wartość jest przekazywana jako argument wyjściowy. |
Klasy publiczne
Nazwa/nazwisko | opis |
---|---|
Klasa CAtlMap::CPair | Klasa zawierająca elementy klucza i wartości. |
Składowe danych CPair
Nazwa/nazwisko | opis |
---|---|
CPair::m_key | Element członkowski danych przechowujące klucz. |
CPair::m_value | Element członkowski danych przechowujące element wartości. |
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CAtlMap::CAtlMap | Konstruktor. |
CAtlMap::~CAtlMap | Destruktora. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CAtlMap::AssertValid | Wywołaj tę metodę, aby spowodować asercję, jeśli CAtlMap element jest nieprawidłowy. |
CAtlMap::D isableAutoRehash | Wywołaj tę metodę, aby wyłączyć automatyczne ponowne łączenie CAtlMap obiektu. |
CAtlMap::EnableAutoRehash | Wywołaj tę metodę, aby włączyć automatyczne ponowne łączenie CAtlMap obiektu. |
CAtlMap::GetAt | Wywołaj tę metodę, aby zwrócić element na określonej pozycji na mapie. |
CAtlMap::GetCount | Wywołaj tę metodę, aby pobrać liczbę elementów na mapie. |
CAtlMap::GetHashTableSize | Wywołaj tę metodę, aby określić liczbę pojemników w tabeli skrótów mapy. |
CAtlMap::GetKeyAt | Wywołaj tę metodę, aby pobrać klucz przechowywany na danej pozycji w CAtlMap obiekcie. |
CAtlMap::GetNext | Wywołaj tę metodę, aby uzyskać wskaźnik do następnej pary elementów przechowywanej CAtlMap w obiekcie. |
CAtlMap::GetNextAssoc | Pobiera następny element do iteracji. |
CAtlMap::GetNextKey | Wywołaj tę metodę, aby pobrać następny klucz z CAtlMap obiektu. |
CAtlMap::GetNextValue | Wywołaj tę metodę, aby uzyskać następną wartość z CAtlMap obiektu. |
CAtlMap::GetStartPosition | Wywołaj tę metodę, aby rozpocząć iterację mapy. |
CAtlMap::GetValueAt | Wywołaj tę metodę, aby pobrać wartość przechowywaną na danej pozycji w CAtlMap obiekcie. |
CAtlMap::InitHashTable | Wywołaj tę metodę, aby zainicjować tabelę skrótów. |
CAtlMap::IsEmpty | Wywołaj tę metodę, aby przetestować pusty obiekt mapy. |
CAtlMap::Lookup | Wywołaj tę metodę, aby wyszukać klucze lub wartości w CAtlMap obiekcie. |
CAtlMap::Rehash | Wywołaj tę metodę, aby ponownie przesłonić CAtlMap obiekt. |
CAtlMap::RemoveAll | Wywołaj tę metodę, aby usunąć wszystkie elementy z CAtlMap obiektu. |
CAtlMap::RemoveAtPos | Wywołaj tę metodę, aby usunąć element na danej pozycji w CAtlMap obiekcie. |
CAtlMap::RemoveKey | Wywołaj tę metodę, aby usunąć element z CAtlMap obiektu, biorąc pod uwagę klucz. |
CAtlMap::SetAt | Wywołaj tę metodę, aby wstawić parę elementów do mapy. |
CAtlMap::SetOptimalLoad | Wywołaj tę metodę, aby ustawić optymalne obciążenie CAtlMap obiektu. |
CAtlMap::SetValueAt | Wywołaj tę metodę, aby zmienić wartość przechowywaną na danej pozycji w CAtlMap obiekcie. |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
CAtlMap::operator[] | Zamienia lub dodaje nowy element do elementu CAtlMap . |
Uwagi
CAtlMap
Zapewnia obsługę tablicy mapowania dowolnego typu, zarządzania nieurządkowaną tablicą kluczowych elementów i skojarzonych z nimi wartości. Elementy (składające się z klucza i wartości) są przechowywane przy użyciu algorytmu tworzenia skrótów, co pozwala na efektywne przechowywanie i pobieranie dużej ilości danych.
Parametry KTraits i VTraits to klasy cech, które zawierają dowolny dodatkowy kod potrzebny do kopiowania lub przenoszenia elementów.
Alternatywą CAtlMap
jest klasa CRBMap . CRBMap
przechowuje również pary klucz/wartość, ale wykazuje różne cechy wydajności. Czas potrzebny na wstawienie elementu, wyszukanie klucza lub usunięcie klucza z CRBMap
obiektu to dziennik zamówień (n),gdzie n jest liczbą elementów. W przypadku CAtlMap
programu wszystkie te operacje zwykle zajmują stały czas, chociaż scenariusze najgorsze przypadki mogą mieć kolejność n. W związku z tym, w typowym przypadku, CAtlMap
jest szybszy.
Druga różnica między elementami CRBMap
i CAtlMap
staje się widoczna podczas iterowania przez przechowywane elementy. W obiekcie CRBMap
elementy są odwiedzane w kolejności posortowanej. W obiekcie CAtlMap
elementy nie są uporządkowane i nie można wywnioskować żadnej kolejności.
Jeśli należy przechowywać niewielką liczbę elementów, rozważ użycie klasy CSimpleMap .
Aby uzyskać więcej informacji, zobacz Klasy kolekcji ATL.
Wymagania
Nagłówek: atlcoll.h
CAtlMap::AssertValid
Wywołaj tę metodę, aby spowodować asercję, jeśli CAtlMap
obiekt jest nieprawidłowy.
void AssertValid() const;
Uwagi
W kompilacjach debugowania ta metoda spowoduje potwierdzenie, jeśli CAtlMap
obiekt jest nieprawidłowy.
Przykład
Zobacz przykład CAtlMap::CAtlMap.
CAtlMap::CAtlMap
Konstruktor.
CAtlMap(
UINT nBins = 17,
float fOptimalLoad = 0.75f,
float fLoThreshold = 0.25f,
float fHiThreshold = 2.25f,
UINT nBlockSize = 10) throw ();
Parametry
nBins
Liczba pojemników dostarczających wskaźniki do przechowywanych elementów. Zobacz uwagi w dalszej części tego tematu, aby zapoznać się z wyjaśnieniem pojemników.
fOptimalLoad
Optymalny stosunek obciążenia.
fLoThreshold
Niższy próg współczynnika obciążenia.
fHiThreshold
Górny próg współczynnika obciążenia.
nBlockSize
Rozmiar bloku.
Uwagi
CAtlMap
odwołuje się do wszystkich przechowywanych elementów, tworząc najpierw indeks przy użyciu algorytmu tworzenia skrótów w kluczu. Ten indeks odwołuje się do "pojemnika", który zawiera wskaźnik do przechowywanych elementów. Jeśli pojemnik jest już używany, zostanie utworzona lista połączona w celu uzyskania dostępu do kolejnych elementów. Przechodzenie listy jest wolniejsze niż bezpośrednie uzyskiwanie dostępu do poprawnego elementu, dlatego struktura mapy musi równoważyć wymagania dotyczące magazynu w stosunku do wydajności. W większości przypadków wybrano parametry domyślne, aby zapewnić dobre wyniki.
Współczynnik obciążenia to stosunek liczby pojemników do liczby elementów przechowywanych w obiekcie mapy. Po ponownym obliczeniu struktury mapy wartość parametru fOptimalLoad zostanie użyta do obliczenia wymaganej liczby pojemników. Tę wartość można zmienić przy użyciu metody CAtlMap::SetOptimalLoad .
Parametr fLoThreshold jest niższą wartością, jaką stosunek obciążenia może osiągnąć przed CAtlMap
ponownym obliczeniu optymalnego rozmiaru mapy.
Parametr fHiThreshold jest górną wartością, którą stosunek obciążenia może osiągnąć, zanim CAtlMap
obiekt ponownie obliczy optymalny rozmiar mapy.
Ten proces ponownego obliczania (znany jako ponowne łączenie) jest domyślnie włączony. Jeśli chcesz wyłączyć ten proces, być może podczas wprowadzania wielu danych jednocześnie wywołaj metodę CAtlMap::D isableAutoRehash . Uaktywnij ją ponownie za pomocą metody CAtlMap::EnableAutoRehash .
Parametr nBlockSize jest miarą ilości pamięci przydzielonej, gdy jest wymagany nowy element. Większe rozmiary bloków zmniejszają liczbę wywołań procedur alokacji pamięci, ale korzystają z większej liczby zasobów.
Przed zapisaniem jakichkolwiek danych należy zainicjować tabelę skrótów za pomocą wywołania metody CAtlMap::InitHashTable.
Przykład
// 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
Destruktora.
~CAtlMap() throw();
Uwagi
Zwalnia wszystkie przydzielone zasoby.
Klasa CAtlMap::CPair
Klasa zawierająca elementy klucza i wartości.
class CPair : public __POSITION
Uwagi
Ta klasa jest używana przez metody CAtlMap::GetNext i CAtlMap::Lookup w celu uzyskania dostępu do elementów klucza i wartości przechowywanych w strukturze mapowania.
CAtlMap::D isableAutoRehash
Wywołaj tę metodę, aby wyłączyć automatyczne ponowne łączenie CAtlMap
obiektu.
void DisableAutoRehash() throw();
Uwagi
Po włączeniu automatycznego ponownego formatowania (które jest domyślnie włączone), liczba pojemników w tabeli skrótów zostanie automatycznie obliczona ponownie, jeśli wartość obciążenia (stosunek liczby pojemników do liczby elementów przechowywanych w tablicy) przekracza maksymalną lub minimalną wartość określoną w momencie utworzenia mapy.
DisableAutoRehash
jest najbardziej przydatna, gdy do mapy zostanie dodana duża liczba elementów jednocześnie. Zamiast wyzwalać proces ponownego tworzenia powłoki za każdym razem, gdy limity są przekraczane, bardziej wydajne jest wywoływanie DisableAutoRehash
, dodawanie elementów, a na koniec wywoływanie CAtlMap::EnableAutoRehash.
CAtlMap::EnableAutoRehash
Wywołaj tę metodę, aby włączyć automatyczne ponowne łączenie CAtlMap
obiektu.
void EnableAutoRehash() throw();
Uwagi
Po włączeniu automatycznego ponownego formatowania (które jest domyślnie włączone), liczba pojemników w tabeli skrótów zostanie automatycznie obliczona ponownie, jeśli wartość obciążenia (stosunek liczby pojemników do liczby elementów przechowywanych w tablicy) przekracza maksymalną lub minimalną wartość określoną w momencie utworzenia mapy.
EnableAutoRefresh
jest najczęściej używany po wywołaniu metody CAtlMap::D isableAutoRehash.
CAtlMap::GetAt
Wywołaj tę metodę, aby zwrócić element na określonej pozycji na mapie.
void GetAt(
POSITION pos,
KOUTARGTYPE key,
VOUTARGTYPE value) const;
CPair* GetAt(POSITION& pos) throw();
Parametry
pozytyw
Licznik położenia zwrócony przez poprzednie wywołanie metody CAtlMap::GetNextAssoc lub CAtlMap::GetStartPosition.
key
Parametr szablonu określający typ klucza mapy.
wartość
Parametr szablonu określający typ wartości mapy.
Wartość zwracana
Zwraca wskaźnik do bieżącej pary elementów klucz/wartość przechowywanych na mapie.
Uwagi
W kompilacjach debugowania wystąpi błąd asercji, jeśli wiersze są równe null.
CAtlMap::GetCount
Wywołaj tę metodę, aby pobrać liczbę elementów na mapie.
size_t GetCount() const throw();
Wartość zwracana
Zwraca liczbę elementów w obiekcie mapy. Pojedynczy element jest parą klucz/wartość.
Przykład
Zobacz przykład CAtlMap::CAtlMap.
CAtlMap::GetHashTableSize
Wywołaj tę metodę, aby określić liczbę pojemników w tabeli skrótów mapy.
UINT GetHashTableSize() const throw();
Wartość zwracana
Zwraca liczbę pojemników w tabeli skrótów. Aby uzyskać wyjaśnienie, zobacz CAtlMap::CAtlMap .
CAtlMap::GetKeyAt
Wywołaj tę metodę, aby pobrać klucz przechowywany na danej pozycji w CAtlMap
obiekcie.
const K& GetKeyAt(POSITION pos) const throw();
Parametry
pozytyw
Licznik położenia zwrócony przez poprzednie wywołanie metody CAtlMap::GetNextAssoc lub CAtlMap::GetStartPosition.
Wartość zwracana
Zwraca odwołanie do klucza przechowywanego na danej pozycji w CAtlMap
obiekcie.
Przykład
Zobacz przykład CAtlMap::CAtlMap.
CAtlMap::GetNext
Wywołaj tę metodę, aby uzyskać wskaźnik do następnej pary elementów przechowywanej CAtlMap
w obiekcie.
CPair* GetNext(POSITION& pos) throw();
const CPair* GetNext(POSITION& pos) const throw();
Parametry
pozytyw
Licznik położenia zwrócony przez poprzednie wywołanie metody CAtlMap::GetNextAssoc lub CAtlMap::GetStartPosition.
Wartość zwracana
Zwraca wskaźnik do następnej pary elementów klucz/wartość przechowywanych na mapie. Licznik położenia pos jest aktualizowany po każdym wywołaniu. Jeśli pobrany element jest ostatnim elementem na mapie, element pos jest ustawiony na wartość NULL.
CAtlMap::GetNextAssoc
Pobiera następny element do iteracji.
void GetNextAssoc(
POSITION& pos,
KOUTARGTYPE key,
VOUTARGTYPE value) const;
Parametry
pozytyw
Licznik położenia zwrócony przez poprzednie wywołanie metody CAtlMap::GetNextAssoc lub CAtlMap::GetStartPosition.
key
Parametr szablonu określający typ klucza mapy.
wartość
Parametr szablonu określający typ wartości mapy.
Uwagi
Licznik położenia pos jest aktualizowany po każdym wywołaniu. Jeśli pobrany element jest ostatnim elementem na mapie, element pos jest ustawiony na wartość NULL.
CAtlMap::GetNextKey
Wywołaj tę metodę, aby pobrać następny klucz z CAtlMap
obiektu.
const K& GetNextKey(POSITION& pos) const throw();
Parametry
pozytyw
Licznik położenia zwrócony przez poprzednie wywołanie metody CAtlMap::GetNextAssoc lub CAtlMap::GetStartPosition.
Wartość zwracana
Zwraca odwołanie do następnego klucza na mapie.
Uwagi
Aktualizuje bieżący licznik położenia, pos. Jeśli nie ma więcej wpisów na mapie, licznik położenia jest ustawiony na wartość NULL.
CAtlMap::GetNextValue
Wywołaj tę metodę, aby uzyskać następną wartość z CAtlMap
obiektu.
V& GetNextValue(POSITION& pos) throw();
const V& GetNextValue(POSITION& pos) const throw();
Parametry
pozytyw
Licznik położenia zwrócony przez poprzednie wywołanie metody CAtlMap::GetNextAssoc lub CAtlMap::GetStartPosition.
Wartość zwracana
Zwraca odwołanie do następnej wartości na mapie.
Uwagi
Aktualizuje bieżący licznik położenia, pos. Jeśli nie ma więcej wpisów na mapie, licznik położenia jest ustawiony na wartość NULL.
Przykład
Zobacz przykład CAtlMap::CAtlMap.
CAtlMap::GetStartPosition
Wywołaj tę metodę, aby rozpocząć iterację mapy.
POSITION GetStartPosition() const throw();
Wartość zwracana
Zwraca pozycję początkową lub zwraca wartość NULL, jeśli mapa jest pusta.
Uwagi
Wywołaj tę metodę, aby rozpocząć iterację mapy, zwracając wartość POSITION, którą można przekazać do GetNextAssoc
metody .
Uwaga
Sekwencja iteracji nie jest przewidywalna
Przykład
Zobacz przykład CAtlMap::CAtlMap.
CAtlMap::GetValueAt
Wywołaj tę metodę, aby pobrać wartość przechowywaną na danej pozycji w CAtlMap
obiekcie.
V& GetValueAt(POSITION pos) throw();
const V& GetValueAt(POSITION pos) const throw();
Parametry
pozytyw
Licznik położenia zwrócony przez poprzednie wywołanie metody CAtlMap::GetNextAssoc lub CAtlMap::GetStartPosition.
Wartość zwracana
Zwraca odwołanie do wartości przechowywanej na danej pozycji w CAtlMap
obiekcie.
CAtlMap::InitHashTable
Wywołaj tę metodę, aby zainicjować tabelę skrótów.
bool InitHashTable(
UINT nBins,
bool bAllocNow = true);
Parametry
nBins
Liczba pojemników używanych przez tabelę skrótów. Aby uzyskać wyjaśnienie, zobacz CAtlMap::CAtlMap .
bAllocNow
Flaga wskazująca, kiedy należy przydzielić pamięć.
Wartość zwracana
Zwraca wartość TRUE w przypadku pomyślnego inicjowania, FALSE w przypadku niepowodzenia.
Uwagi
InitHashTable
element musi być wywoływany, zanim wszystkie elementy są przechowywane w tabeli skrótów. Jeśli ta metoda nie zostanie wywołana jawnie, zostanie wywołana automatycznie przy pierwszym dodaniu elementu przy użyciu liczby pojemników określonej przez konstruktora CAtlMap
. W przeciwnym razie mapa zostanie zainicjowana przy użyciu nowej liczby pojemników określonej przez parametr nBins .
Jeśli parametr bAllocNow ma wartość false, pamięć wymagana przez tabelę skrótów nie zostanie przydzielona, dopóki nie zostanie ona najpierw wymagana. Może to być przydatne, jeśli nie ma pewności, czy mapa zostanie użyta.
Przykład
Zobacz przykład CAtlMap::CAtlMap.
CAtlMap::IsEmpty
Wywołaj tę metodę, aby przetestować pusty obiekt mapy.
bool IsEmpty() const throw();
Wartość zwracana
Zwraca wartość TRUE, jeśli mapa jest pusta, w przeciwnym razie wartość FALSE.
CAtlMap::KINARGTYPE
Typ używany, gdy klucz jest przekazywany jako argument wejściowy.
typedef KTraits::INARGTYPE KINARGTYPE;
CAtlMap::KOUTARGTYPE
Typ używany, gdy klucz jest zwracany jako argument wyjściowy.
typedef KTraits::OUTARGTYPE KOUTARGTYPE;
CAtlMap::Lookup
Wywołaj tę metodę, aby wyszukać klucze lub wartości w CAtlMap
obiekcie.
bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const;
const CPair* Lookup(KINARGTYPE key) const throw();
CPair* Lookup(KINARGTYPE key) throw();
Parametry
key
Określa klucz, który identyfikuje element do wyszukania.
wartość
Zmienna, która odbiera wyszukaną wartość.
Wartość zwracana
Pierwsza forma metody zwraca wartość true, jeśli klucz zostanie znaleziony, w przeciwnym razie wartość false. Drugie i trzecie formularze zwracają wskaźnik do CPair , który może być używany jako pozycja dla wywołań CAtlMap ::GetNext itd.
Uwagi
Lookup
używa algorytmu tworzenia skrótów, aby szybko znaleźć element mapy zawierający klucz, który dokładnie pasuje do danego parametru klucza.
CAtlMap::operator []
Zamienia lub dodaje nowy element do elementu CAtlMap
.
V& operator[](kinargtype key) throw();
Parametry
key
Klucz elementu do dodania lub zastąpienia.
Wartość zwracana
Zwraca odwołanie do wartości skojarzonej z danym kluczem.
Przykład
Jeśli klucz już istnieje, element zostanie zastąpiony. Jeśli klucz nie istnieje, zostanie dodany nowy element. Zobacz przykład CAtlMap::CAtlMap.
CAtlMap::Rehash
Wywołaj tę metodę, aby ponownie przesłonić CAtlMap
obiekt.
void Rehash(UINT nBins = 0);
Parametry
nBins
Nowa liczba pojemników do użycia w tabeli skrótów. Aby uzyskać wyjaśnienie, zobacz CAtlMap::CAtlMap .
Uwagi
Jeśli parametr nBins ma wartość 0, CAtlMap
oblicza rozsądną liczbę na podstawie liczby elementów na mapie i optymalnego ustawienia obciążenia. Zwykle proces ponownego tworzenia powłoki jest automatyczny, ale jeśli element CAtlMap::D isableAutoRehash został wywołany, ta metoda wykona niezbędną zmianę rozmiaru.
CAtlMap::RemoveAll
Wywołaj tę metodę, aby usunąć wszystkie elementy z CAtlMap
obiektu.
void RemoveAll() throw();
Uwagi
Czyści CAtlMap
obiekt, zwalniając pamięć używaną do przechowywania elementów.
CAtlMap::RemoveAtPos
Wywołaj tę metodę, aby usunąć element na danej pozycji w CAtlMap
obiekcie.
void RemoveAtPos(POSITION pos) throw();
Parametry
pozytyw
Licznik położenia zwrócony przez poprzednie wywołanie metody CAtlMap::GetNextAssoc lub CAtlMap::GetStartPosition.
Uwagi
Usuwa parę klucz/wartość przechowywaną na określonej pozycji. Pamięć używana do przechowywania elementu jest zwalniana. Pozycja, do której odwołuje się wiersz pos , staje się nieprawidłowa, a pozycja innych elementów na mapie pozostaje prawidłowa, niekoniecznie zachowują tę samą kolejność.
CAtlMap::RemoveKey
Wywołaj tę metodę, aby usunąć element z CAtlMap
obiektu, biorąc pod uwagę klucz.
bool RemoveKey(KINARGTYPE key) throw();
Parametry
key
Klucz odpowiadający parze elementów, którą chcesz usunąć.
Wartość zwracana
Zwraca wartość TRUE, jeśli klucz zostanie znaleziony i usunięty, wartość FALSE w przypadku niepowodzenia.
Przykład
Zobacz przykład CAtlMap::CAtlMap.
CAtlMap::SetAt
Wywołaj tę metodę, aby wstawić parę elementów do mapy.
POSITION SetAt(
KINARGTYPE key,
VINARGTYPE value);
Parametry
key
Wartość klucza, która ma zostać dodana do CAtlMap
obiektu.
wartość
Wartość do dodania CAtlMap
do obiektu.
Wartość zwracana
Zwraca położenie pary elementu klucz/wartość w CAtlMap
obiekcie.
Uwagi
SetAt
zastępuje istniejący element, jeśli zostanie znaleziony pasujący klucz. Jeśli klucz nie zostanie znaleziony, zostanie utworzona nowa para klucz/wartość.
CAtlMap::SetOptimalLoad
Wywołaj tę metodę, aby ustawić optymalne obciążenie CAtlMap
obiektu.
void SetOptimalLoad(
float fOptimalLoad,
float fLoThreshold,
float fHiThreshold,
bool bRehashNow = false);
Parametry
fOptimalLoad
Optymalny stosunek obciążenia.
fLoThreshold
Niższy próg współczynnika obciążenia.
fHiThreshold
Górny próg współczynnika obciążenia.
bRehashNow
Flaga wskazująca, czy tabela skrótów powinna zostać ponownie obliczona.
Uwagi
Ta metoda definiuje optymalną wartość obciążenia dla CAtlMap
obiektu. Zobacz CAtlMap::CAtlMap , aby zapoznać się z omówieniem różnych parametrów. Jeśli wartość bRehashNow ma wartość true, a liczba elementów znajduje się poza wartościami minimalnymi i maksymalnymi, zostanie ponownie obliczona tabela skrótów.
CAtlMap::SetValueAt
Wywołaj tę metodę, aby zmienić wartość przechowywaną na danej pozycji w CAtlMap
obiekcie.
void SetValueAt(
POSITION pos,
VINARGTYPE value);
Parametry
pozytyw
Licznik położenia zwrócony przez poprzednie wywołanie metody CAtlMap::GetNextAssoc lub CAtlMap::GetStartPosition.
wartość
Wartość do dodania CAtlMap
do obiektu.
Uwagi
Zmienia element wartości przechowywany na danej pozycji w CAtlMap
obiekcie.
CAtlMap::VINARGTYPE
Typ używany, gdy wartość jest przekazywana jako argument wejściowy.
typedef VTraits::INARGTYPE VINARGTYPE;
CAtlMap::VOUTARGTYPE
Typ używany, gdy wartość jest przekazywana jako argument wyjściowy.
typedef VTraits::OUTARGTYPE VOUTARGTYPE;
CAtlMap::CPair::m_key
Element członkowski danych przechowujące klucz.
const K m_key;
Parametry
K
Typ kluczowego elementu.
CAtlMap::CPair::m_value
Element członkowski danych przechowujące element wartości.
V m_value;
Parametry
V
Typ elementu wartości.