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.
Elementy członkowskie
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 CRBTree
elementu , a więc udostępnia wiele funkcji za pomocą CRBMap
polecenia .
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
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