CRBMap – třída
Tato třída představuje mapovací strukturu pomocí binárního stromu Red-Black.
Syntaxe
template <typename K,
typename V,
class KTraits = CElementTraits<K>,
class VTraits = CElementTraits<V>>
class CRBMap : public CRBTree<K, V, KTraits, VTraits>
Parametry
K
Typ klíčového prvku.
V
Typ prvku value.
KTraits
Kód použitý ke zkopírování nebo přesunutí klíčových prvků. Další podrobnosti najdete v tématu CElementTraits – třída .
VTraits
Kód použitý ke zkopírování nebo přesunutí hodnotových prvků.
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CRBMap::CRBMap | Konstruktor |
CRBMap::~CRBMap | Destruktor. |
Veřejné metody
Název | Popis |
---|---|
CRBMap::Lookup | Voláním této metody vyhledáte klíče nebo hodnoty v objektu CRBMap . |
CRBMap::RemoveKey | Voláním této metody odeberete prvek z objektu CRBMap vzhledem ke klíči. |
CRBMap::SetAt | Voláním této metody vložíte do mapy dvojici prvků. |
Poznámky
CRBMap
poskytuje podporu pro mapování pole libovolného daného typu, správu uspořádaného pole klíčových prvků a jejich přidružených hodnot. Každý klíč může mít pouze jednu přidruženou hodnotu. Elementy (sestávající z klíče a hodnoty) jsou uloženy v binární stromové struktuře pomocí CRBMap::SetAt metoda. Elementy lze odebrat pomocí CRBMap::RemoveKey metoda, která odstraní element s danou hodnotou klíče.
Procházení stromu je možné pomocí metod, jako je CRBTree::GetHeadPosition, CRBTree::GetNext a CRBTree::GetNextValue.
Parametry KTraits a VTraits jsou třídy vlastností, které obsahují jakýkoli doplňkový kód potřebný ke kopírování nebo přesouvání prvků.
CRBMap
je odvozen z CRBTree, který implementuje binární strom pomocí algoritmu Red-Black. CRBMultiMap je varianta, která umožňuje více hodnot pro každý klíč. Je také odvozen z CRBTree
, a tak sdílí mnoho funkcí s CRBMap
.
Alternativu k oběma CRBMap
a CRBMultiMap
je nabízena CAtlMap třídy. Pokud je potřeba uložit pouze malý počet prvků, zvažte místo toho použití CSimpleMap třídy.
Podrobnější informace o různých třídách kolekcí a jejich funkcích a charakteristikách výkonu najdete v tématu Třídy kolekcí ATL.
Hierarchie dědičnosti
CRBMap
Požadavky
Hlavička: atlcoll.h
CRBMap::CRBMap
Konstruktor
explicit CRBMap(size_t nBlockSize = 10) throw();
Parametry
nBlockSize
Velikost bloku.
Poznámky
NBlockSize parametr je míra množství paměti přidělené v případě, že je požadován nový prvek. Větší velikosti bloků snižují počet volání rutin přidělení paměti, ale využívají více prostředků. Výchozí hodnota přidělí prostor pro 10 prvků najednou.
Informace o dalších dostupných metodách najdete v dokumentaci pro základní třídu CRBTree .
Příklad
// 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
Destruktor.
~CRBMap() throw();
Poznámky
Uvolní všechny přidělené prostředky.
Informace o dalších dostupných metodách najdete v dokumentaci pro základní třídu CRBTree .
CRBMap::Lookup
Voláním této metody vyhledáte klíče nebo hodnoty v objektu CRBMap
.
bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const throw(...);
const CPair* Lookup(KINARGTYPE key) const throw();
CPair* Lookup(KINARGTYPE key) throw();
Parametry
key
Určuje klíč, který identifikuje prvek, který se má vyhledat.
value
Proměnná, která přijímá vyhledánou hodnotu.
Návratová hodnota
První forma metody vrátí hodnotu true, pokud je klíč nalezen, jinak false. Druhý a třetí formulář vrátí ukazatel na CPair.
Poznámky
Informace o dalších dostupných metodách najdete v dokumentaci pro základní třídu CRBTree .
Příklad
// Look up the value for a key of 0
double v;
myMap.Lookup(0,v);
CRBMap::RemoveKey
Voláním této metody odeberete prvek z objektu CRBMap
vzhledem ke klíči.
bool RemoveKey(KINARGTYPE key) throw();
Parametry
key
Klíč odpovídající páru prvků, který chcete odebrat.
Návratová hodnota
Vrátí hodnotu true, pokud se klíč najde a odebere, nepravda při selhání.
Poznámky
Informace o dalších dostupných metodách najdete v dokumentaci pro základní třídu CRBTree .
Příklad
// Remove an element, based on the key of 0
ATLVERIFY(myMap.RemoveKey(0) == true);
CRBMap::SetAt
Voláním této metody vložíte do mapy dvojici prvků.
POSITION SetAt(
KINARGTYPE key,
VINARGTYPE value) throw(...);
Parametry
key
Hodnota klíče, kterou chcete přidat k objektu CRBMap
.
value
Hodnota, kterou chcete přidat k objektu CRBMap
.
Návratová hodnota
Vrátí pozici dvojice elementů klíč/hodnota v objektu CRBMap
.
Poznámky
SetAt
nahradí existující prvek, pokud je nalezen odpovídající klíč. Pokud se klíč nenajde, vytvoří se nový pár klíč/hodnota.
Informace o dalších dostupných metodách najdete v dokumentaci pro základní třídu CRBTree .
Příklad
// Add an element to the map, with a key of 0
myMap.SetAt(0,1.1);
Viz také
CRBTree – třída
CAtlMap – třída
CRBMultiMap – třída
Přehled třídy