Sdílet prostřednictvím


CSimpleMap – třída

Tato třída poskytuje podporu jednoduchého mapování pole.

Syntaxe

template <class TKey, class TVal, class TEqual = CSimpleMapEqualHelper<TKey, TVal>>
class CSimpleMap

Parametry

Klíč TKey
Typ klíčového prvku.

TVal
Typ prvku value.

TEqual
Objekt vlastnosti definující test rovnosti prvků typu T.

Členové

Veřejné definice typedef

Název Popis
CSimpleMap::_ArrayElementType Typedef pro typ hodnoty.
CSimpleMap::_ArrayKeyType Typedef pro typ klíče.

Veřejné konstruktory

Název Popis
CSimpleMap::CSimpleMap Konstruktor
CSimpleMap::~CSimpleMap Destruktor.

Veřejné metody

Název Popis
CSimpleMap::Add Přidá klíč a přidruženou hodnotu do pole mapování.
CSimpleMap::FindKey Najde konkrétní klíč.
CSimpleMap::FindVal Najde konkrétní hodnotu.
CSimpleMap::GetKeyAt Načte zadaný klíč.
CSimpleMap::GetSize Vrátí počet položek v mapovacím poli.
CSimpleMap::GetValueAt Načte zadanou hodnotu.
CSimpleMap::Lookup Vrátí hodnotu přidruženou k danému klíči.
CSimpleMap::Remove Odebere klíč a odpovídající hodnotu.
CSimpleMap::RemoveAll Odebere všechny klíče a hodnoty.
CSimpleMap::RemoveAt Odebere konkrétní klíč a odpovídající hodnotu.
CSimpleMap::ReverseLookup Vrátí klíč přidružený k dané hodnotě.
CSimpleMap::SetAt Nastaví hodnotu přidruženou k danému klíči.
CSimpleMap::SetAtIndex Nastaví konkrétní klíč a hodnotu.

Poznámky

CSimpleMap poskytuje podporu jednoduchého mapování pole libovolného typu T, správa neuspořádaného pole klíčových prvků a jejich přidružených hodnot.

TEqual Parametr poskytuje způsob definování funkce rovnosti pro dva prvky typu T. Vytvořením třídy podobné CSimpleMapEqualHelper je možné změnit chování testu rovnosti pro jakékoli dané pole. Například při práci s polem ukazatelů může být užitečné definovat rovnost v závislosti na hodnotách, na které odkazují ukazatele. Výchozí implementace využívá operator==().

Pro zajištění kompatibility s předchozími verzemi ATL jsou k dispozici obě CSimpleMap verze CSimpleArray a CAtlMap jsou k dispozici ucelenější a efektivnější implementace kolekcí.

Na rozdíl od jiných mapových kolekcí v ATL a MFC je tato třída implementována s jednoduchým polem a vyhledávání vyžaduje lineární vyhledávání. CAtlMap by se mělo použít, pokud pole obsahuje velký počet prvků.

Požadavky

Hlavička: atlsimpcoll.h

Příklad

// Create a map with an integer key and character pointer value
CSimpleMap<int, char *> iArray;   

CSimpleMap::Add

Přidá klíč a přidruženou hodnotu do pole mapování.

BOOL Add(const TKey& key, const TVal& val);

Parametry

key
Klíč

Val
Přidružená hodnota.

Návratová hodnota

Vrátí hodnotu TRUE, pokud byl klíč a hodnota úspěšně přidány, jinak nePRAVDA.

Poznámky

Každý přidaný pár klíč a hodnota způsobí uvolnění a přerozdělování paměti pole mapování, aby se zajistilo, že data pro každý z nich budou vždy uložena souvisle. To znamená, že druhý klíčový prvek vždy přímo následuje první klíčový prvek v paměti atd.

CSimpleMap::_ArrayElementType

Typedef pro typ klíče.

typedef TVal _ArrayElementType;

CSimpleMap::_ArrayKeyType

Typedef pro typ hodnoty.

typedef TKey _ArrayKeyType;

CSimpleMap::CSimpleMap

Konstruktor

CSimpleMap();

Poznámky

Inicializuje datové členy.

CSimpleMap::~CSimpleMap

Destruktor.

~CSimpleMap();

Poznámky

Uvolní všechny přidělené prostředky.

CSimpleMap::FindKey

Najde konkrétní klíč.

int FindKey(const TKey& key) const;

Parametry

key
Klíč, který chcete vyhledat.

Návratová hodnota

Vrátí index klíče, pokud je nalezen, v opačném případě vrátí hodnotu -1.

CSimpleMap::FindVal

Najde konkrétní hodnotu.

int FindVal(const TVal& val) const;

Parametry

Val
Hodnota, pro kterou chcete hledat.

Návratová hodnota

Vrátí index hodnoty, pokud je nalezena, v opačném případě vrátí hodnotu -1.

CSimpleMap::GetKeyAt

Načte klíč v zadaném indexu.

TKey& GetKeyAt(int nIndex) const;

Parametry

nIndex
Index klíče, který se má vrátit.

Návratová hodnota

Vrátí klíč, na který odkazuje nIndex.

Poznámky

Index předaný parametrem nIndex musí být platný, aby vrácená hodnota byla smysluplná.

CSimpleMap::GetSize

Vrátí počet položek v mapovacím poli.

int GetSize() const;

Návratová hodnota

Vrátí počet položek (klíč a hodnota je jedna položka) v mapovacím poli.

CSimpleMap::GetValueAt

Načte hodnotu v konkrétním indexu.

TVal& GetValueAt(int nIndex) const;

Parametry

nIndex
Index hodnoty, která se má vrátit.

Návratová hodnota

Vrátí hodnotu odkazovanou hodnotou nIndex.

Poznámky

Index předaný parametrem nIndex musí být platný, aby vrácená hodnota byla smysluplná.

CSimpleMap::Lookup

Vrátí hodnotu přidruženou k danému klíči.

TVal Lookup(const TKey& key) const;

Parametry

key
Klíč

Návratová hodnota

Vrátí přidruženou hodnotu. Pokud se nenajde žádný odpovídající klíč, vrátí se hodnota NULL.

CSimpleMap::Remove

Odebere klíč a odpovídající hodnotu.

BOOL Remove(const TKey& key);

Parametry

key
Klíč

Návratová hodnota

Vrátí hodnotu TRUE, pokud byl klíč a odpovídající hodnota úspěšně odebrána, jinak nePRAVDA.

CSimpleMap::RemoveAll

Odebere všechny klíče a hodnoty.

void RemoveAll();

Poznámky

Odebere všechny klíče a hodnoty z objektu mapování pole.

CSimpleMap::RemoveAt

Odebere klíč a přidruženou hodnotu v zadaném indexu.

BOOL RemoveAt(int nIndex);

Parametry

nIndex
Index klíče a přidružené hodnoty, které chcete odebrat.

Návratová hodnota

Vrátí hodnotu PRAVDA při úspěchu, nePRAVDA, pokud zadaný index je neplatný index.

CSimpleMap::ReverseLookup

Vrátí klíč přidružený k dané hodnotě.

TKey ReverseLookup(const TVal& val) const;

Parametry

Val
Hodnota .

Návratová hodnota

Vrátí přidružený klíč. Pokud se nenajde žádný odpovídající klíč, vrátí se hodnota NULL.

CSimpleMap::SetAt

Nastaví hodnotu přidruženou k danému klíči.

BOOL SetAt(const TKey& key, const TVal& val);

Parametry

key
Klíč

Val
Nová hodnota, kterou chcete přiřadit.

Návratová hodnota

Vrátí hodnotu TRUE, pokud byl klíč nalezen a hodnota byla úspěšně změněna, jinak nePRAVDA.

CSimpleMap::SetAtIndex

Nastaví klíč a hodnotu v zadaném indexu.

BOOL SetAtIndex(
    int nIndex,
    const TKey& key,
    const TVal& val);

Parametry

nIndex
Index, který odkazuje na pár klíč a hodnota, aby se změnil.

key
Nový klíč.

Val
Nová hodnota.

Návratová hodnota

Pokud je index úspěšný, vrátí hodnotu PRAVDA, pokud index není platný.

Poznámky

Aktualizuje klíč i hodnotu, na kterou odkazuje nIndex.

Viz také

Přehled třídy