Udostępnij za pośrednictwem


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 CAtlMapprogramu 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 CRBMapelementy są odwiedzane w kolejności posortowanej. W obiekcie CAtlMapelementy 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.

Zobacz też

Przykład markizy
Przykład updatePV
Omówienie klasy