Klasa CSimpleMap
Ta klasa zapewnia obsługę prostej tablicy mapowania.
Składnia
template <class TKey, class TVal, class TEqual = CSimpleMapEqualHelper<TKey, TVal>>
class CSimpleMap
Parametry
Klucz TKey
Typ kluczowego elementu.
TVal
Typ elementu wartości.
TEqual
Obiekt cech definiujący test równości dla elementów typu T
.
Elementy członkowskie
Definicje typów publicznych
Nazwa/nazwisko | opis |
---|---|
CSimpleMap::_ArrayElementType | Typedef dla typu wartości. |
CSimpleMap::_ArrayKeyType | Typedef dla typu klucza. |
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CSimpleMap::CSimpleMap | Konstruktor. |
CSimpleMap::~CSimpleMap | Destruktora. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CSimpleMap::Add | Dodaje klucz i skojarzona wartość do tablicy map. |
CSimpleMap::FindKey | Znajduje określony klucz. |
CSimpleMap::FindVal | Znajduje określoną wartość. |
CSimpleMap::GetKeyAt | Pobiera określony klucz. |
CSimpleMap::GetSize | Zwraca liczbę wpisów w tablicy mapowania. |
CSimpleMap::GetValueAt | Pobiera określoną wartość. |
CSimpleMap::Lookup | Zwraca wartość skojarzona z danym kluczem. |
CSimpleMap::Remove | Usuwa klucz i zgodną wartość. |
CSimpleMap::RemoveAll | Usuwa wszystkie klucze i wartości. |
CSimpleMap::RemoveAt | Usuwa określony klucz i pasujące wartości. |
CSimpleMap::ReverseLookup | Zwraca klucz skojarzony z daną wartością. |
CSimpleMap::SetAt | Ustawia wartość skojarzona z danym kluczem. |
CSimpleMap::SetAtIndex | Ustawia określony klucz i wartość. |
Uwagi
CSimpleMap
Zapewnia obsługę prostej tablicy mapowania dowolnego typu T
, zarządzając nieurządkowaną tablicą kluczowych elementów i skojarzonych z nimi wartości.
Parametr TEqual
zapewnia metodę definiowania funkcji równości dla dwóch elementów typu T
. Tworząc klasę podobną do CSimpleMapEqualHelper, można zmienić zachowanie testu równości dla dowolnej tablicy. Na przykład w przypadku obsługi tablicy wskaźników może być przydatne zdefiniowanie równości w zależności od wartości, do których odwołuje się wskaźnik. Domyślna implementacja korzysta z operatora==().
ZarównoCSimpleMap
, jak i CSimpleArray są udostępniane pod kątem zgodności z poprzednimi wersjami ATL, a bardziej kompletne i wydajne implementacje kolekcji są dostarczane przez CAtlArray i CAtlMap.
W przeciwieństwie do innych kolekcji map w atl i MFC ta klasa jest implementowana przy użyciu prostej tablicy, a wyszukiwanie wymaga wyszukiwania liniowego. CAtlMap
należy użyć, gdy tablica zawiera dużą liczbę elementów.
Wymagania
Nagłówek: atlsimpcoll.h
Przykład
// Create a map with an integer key and character pointer value
CSimpleMap<int, char *> iArray;
CSimpleMap::Add
Dodaje klucz i skojarzona wartość do tablicy map.
BOOL Add(const TKey& key, const TVal& val);
Parametry
key
Klucz.
Val
Skojarzona wartość.
Wartość zwracana
Zwraca wartość TRUE, jeśli klucz i wartość zostały pomyślnie dodane, w przeciwnym razie wartość FALSE.
Uwagi
Każda dodana para kluczy i wartości powoduje, że pamięć tablicy mapowania jest zwalniana i przydzielana ponownie, w celu zapewnienia, że dane dla każdego z nich są zawsze przechowywane w sposób ciągły. Oznacza to, że drugi element klucza zawsze bezpośrednio następuje pierwszy kluczowy element w pamięci itd.
CSimpleMap::_ArrayElementType
Definicja typu klucza.
typedef TVal _ArrayElementType;
CSimpleMap::_ArrayKeyType
Definicja typu dla typu wartości.
typedef TKey _ArrayKeyType;
CSimpleMap::CSimpleMap
Konstruktor.
CSimpleMap();
Uwagi
Inicjuje składowe danych.
CSimpleMap::~CSimpleMap
Destruktora.
~CSimpleMap();
Uwagi
Zwalnia wszystkie przydzielone zasoby.
CSimpleMap::FindKey
Znajduje określony klucz.
int FindKey(const TKey& key) const;
Parametry
key
Klucz do wyszukania.
Wartość zwracana
Zwraca indeks klucza, jeśli zostanie znaleziony, w przeciwnym razie zwraca wartość -1.
CSimpleMap::FindVal
Znajduje określoną wartość.
int FindVal(const TVal& val) const;
Parametry
Val
Wartość, dla której ma być wyszukiwane.
Wartość zwracana
Zwraca indeks wartości, jeśli zostanie znaleziona, w przeciwnym razie zwraca wartość -1.
CSimpleMap::GetKeyAt
Pobiera klucz w określonym indeksie.
TKey& GetKeyAt(int nIndex) const;
Parametry
nIndex
Indeks klucza do zwrócenia.
Wartość zwracana
Zwraca klucz, do których odwołuje się nIndex.
Uwagi
Indeks przekazany przez nIndex musi być prawidłowy, aby wartość zwracana miała znaczenie.
CSimpleMap::GetSize
Zwraca liczbę wpisów w tablicy mapowania.
int GetSize() const;
Wartość zwracana
Zwraca liczbę wpisów (klucz i wartość jest jednym wpisem) w tablicy mapowania.
CSimpleMap::GetValueAt
Pobiera wartość z określonego indeksu.
TVal& GetValueAt(int nIndex) const;
Parametry
nIndex
Indeks wartości do zwrócenia.
Wartość zwracana
Zwraca wartość przywołyną przez nIndex.
Uwagi
Indeks przekazany przez nIndex musi być prawidłowy, aby wartość zwracana miała znaczenie.
CSimpleMap::Lookup
Zwraca wartość skojarzona z danym kluczem.
TVal Lookup(const TKey& key) const;
Parametry
key
Klucz.
Wartość zwracana
Zwraca skojarzona wartość. Jeśli nie zostanie znaleziony pasujący klucz, zwracana jest wartość NULL.
CSimpleMap::Remove
Usuwa klucz i zgodną wartość.
BOOL Remove(const TKey& key);
Parametry
key
Klucz.
Wartość zwracana
Zwraca wartość TRUE, jeśli klucz i pasująca wartość zostały pomyślnie usunięte, w przeciwnym razie wartość FALSE.
CSimpleMap::RemoveAll
Usuwa wszystkie klucze i wartości.
void RemoveAll();
Uwagi
Usuwa wszystkie klucze i wartości z obiektu tablicy mapowania.
CSimpleMap::RemoveAt
Usuwa klucz i skojarzona wartość w określonym indeksie.
BOOL RemoveAt(int nIndex);
Parametry
nIndex
Indeks klucza i skojarzonej wartości do usunięcia.
Wartość zwracana
Zwraca wartość TRUE w przypadku powodzenia, FALSE, jeśli określony indeks jest nieprawidłowym indeksem.
CSimpleMap::ReverseLookup
Zwraca klucz skojarzony z daną wartością.
TKey ReverseLookup(const TVal& val) const;
Parametry
Val
Wartość.
Wartość zwracana
Zwraca skojarzony klucz. Jeśli nie zostanie znaleziony pasujący klucz, zwracana jest wartość NULL.
CSimpleMap::SetAt
Ustawia wartość skojarzona z danym kluczem.
BOOL SetAt(const TKey& key, const TVal& val);
Parametry
key
Klucz.
Val
Nowa wartość do przypisania.
Wartość zwracana
Zwraca wartość TRUE, jeśli klucz został znaleziony, a wartość została pomyślnie zmieniona, w przeciwnym razie wartość FALSE.
CSimpleMap::SetAtIndex
Ustawia klucz i wartość w określonym indeksie.
BOOL SetAtIndex(
int nIndex,
const TKey& key,
const TVal& val);
Parametry
nIndex
Indeks, odwołując się do pary klucz i wartość, aby zmienić.
key
Nowy klucz.
Val
Nowa wartość.
Wartość zwracana
Zwraca wartość TRUE, jeśli powodzenie, wartość FALSE, jeśli indeks był nieprawidłowy.
Uwagi
Aktualizuje zarówno klucz, jak i wartość wskazywaną przez nIndex.