Udostępnij za pośrednictwem


Klasa CRBMap

Ta klasa reprezentuje strukturę mapowania przy użyciu czerwonego czarnego drzewa binarnego.

Składnia

template <typename K,
          typename V,
          class KTraits = CElementTraits<K>,
          class VTraits = CElementTraits<V>>
class CRBMap : public CRBTree<K, V, KTraits, VTraits>

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.

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
CRBMap::CRBMap Konstruktor.
CRBMap::~CRBMap Destruktora.

Metody publiczne

Nazwa/nazwisko opis
CRBMap::Lookup Wywołaj tę metodę, aby wyszukać klucze lub wartości w CRBMap obiekcie.
CRBMap::RemoveKey Wywołaj tę metodę, aby usunąć element z CRBMap obiektu, biorąc pod uwagę klucz.
CRBMap::SetAt Wywołaj tę metodę, aby wstawić parę elementów do mapy.

Uwagi

CRBMap Zapewnia obsługę tablicy mapowania dowolnego typu, zarządzania uporządkowaną tablicą kluczowych elementów i skojarzonych z nimi wartości. Każdy klucz może mieć tylko jedną skojarzona wartość. Elementy (składające się z klucza i wartości) są przechowywane w strukturze drzewa binarnego przy użyciu metody CRBMap::SetAt . Elementy można usunąć przy użyciu metody CRBMap::RemoveKey , która usuwa element z daną wartością klucza.

Przechodzenie drzewa jest możliwe za pomocą metod, takich jak CRBTree::GetHeadPosition, CRBTree::GetNext i CRBTree::GetNextValue.

Parametry KTraits i VTraits to klasy cech, które zawierają dowolny dodatkowy kod potrzebny do kopiowania lub przenoszenia elementów.

CRBMap pochodzi z obiektu CRBTree, który implementuje drzewo binarne przy użyciu algorytmu Red-Black. CRBMultiMap to odmiana, która zezwala na wiele wartości dla każdego klucza. Pochodzi on też z CRBTreeelementu , a więc udostępnia wiele funkcji za pomocą CRBMappolecenia .

Alternatywą dla obu CRBMap i CRBMultiMap jest oferowana przez klasę CAtlMap . Jeśli należy przechowywać tylko niewielką liczbę elementów, rozważ użycie klasy CSimpleMap .

Aby zapoznać się z bardziej kompletnym omówieniem różnych klas kolekcji oraz ich cech i cech wydajności, zobacz Klasy kolekcji ATL.

Hierarchia dziedziczenia

Crbtree

CRBMap

Wymagania

Nagłówek: atlcoll.h

CRBMap::CRBMap

Konstruktor.

explicit CRBMap(size_t nBlockSize = 10) throw();

Parametry

nBlockSize
Rozmiar bloku.

Uwagi

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. Wartość domyślna spowoduje przydzielenie miejsca dla 10 elementów naraz.

Zapoznaj się z dokumentacją klasy bazowej CRBTree , aby uzyskać informacje na temat innych dostępnych metod.

Przykład

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

Destruktora.

~CRBMap() throw();

Uwagi

Zwalnia wszystkie przydzielone zasoby.

Zapoznaj się z dokumentacją klasy bazowej CRBTree , aby uzyskać informacje na temat innych dostępnych metod.

CRBMap::Lookup

Wywołaj tę metodę, aby wyszukać klucze lub wartości w CRBMap obiekcie.

bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const throw(...);
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. Druga i trzecia formularze zwracają wskaźnik do CPair.

Uwagi

Zapoznaj się z dokumentacją klasy bazowej CRBTree , aby uzyskać informacje na temat innych dostępnych metod.

Przykład

// Look up the value for a key of 0
double v;
myMap.Lookup(0,v);

CRBMap::RemoveKey

Wywołaj tę metodę, aby usunąć element z CRBMap 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.

Uwagi

Zapoznaj się z dokumentacją klasy bazowej CRBTree , aby uzyskać informacje na temat innych dostępnych metod.

Przykład

// Remove an element, based on the key of 0
ATLVERIFY(myMap.RemoveKey(0) == true);

CRBMap::SetAt

Wywołaj tę metodę, aby wstawić parę elementów do mapy.

POSITION SetAt(
    KINARGTYPE key,
    VINARGTYPE value) throw(...);

Parametry

key
Wartość klucza, która ma zostać dodana do CRBMap obiektu.

wartość
Wartość do dodania CRBMap do obiektu.

Wartość zwracana

Zwraca położenie pary elementu klucz/wartość w CRBMap 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ść.

Zapoznaj się z dokumentacją klasy bazowej CRBTree , aby uzyskać informacje na temat innych dostępnych metod.

Przykład

// Add an element to the map, with a key of 0
myMap.SetAt(0,1.1);

Zobacz też

Klasa CRBTree
Klasa CAtlMap
Klasa CRBMultiMap
Omówienie klasy