Sdílet prostřednictvím


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

CRBTree

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