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.