Classe CSimpleMap
Questa classe fornisce il supporto per una semplice matrice di mapping.
Sintassi
template <class TKey, class TVal, class TEqual = CSimpleMapEqualHelper<TKey, TVal>>
class CSimpleMap
Parametri
TKey
Tipo di elemento chiave.
TVal
Tipo di elemento value.
TEqual
Oggetto tratto che definisce il test di uguaglianza per gli elementi di tipo T
.
Membri
Typedef pubblici
Nome | Descrizione |
---|---|
CSimpleMap::_ArrayElementType | Typedef per il tipo di valore. |
CSimpleMap::_ArrayKeyType | Typedef per il tipo di chiave. |
Costruttori pubblici
Nome | Descrizione |
---|---|
CSimpleMap::CSimpleMap | Costruttore. |
CSimpleMap::~CSimpleMap | Distruttore. |
Metodi pubblici
Nome | Descrizione |
---|---|
CSimpleMap::Add | Aggiunge una chiave e un valore associato alla matrice della mappa. |
CSimpleMap::FindKey | Trova una chiave specifica. |
CSimpleMap::FindVal | Trova un valore specifico. |
CSimpleMap::GetKeyAt | Recupera la chiave specificata. |
CSimpleMap::GetSize | Restituisce il numero di voci nella matrice di mapping. |
CSimpleMap::GetValueAt | Recupera il valore specificato. |
CSimpleMap::Lookup | Restituisce il valore associato alla chiave specificata. |
CSimpleMap::Remove | Rimuove una chiave e un valore corrispondente. |
CSimpleMap::RemoveAll | Rimuove tutte le chiavi e i valori. |
CSimpleMap::RemoveAt | Rimuove una chiave specifica e un valore corrispondente. |
CSimpleMap::ReverseLookup | Restituisce la chiave associata al valore specificato. |
CSimpleMap::SetAt | Imposta il valore associato alla chiave specificata. |
CSimpleMap::SetAtIndex | Imposta la chiave e il valore specifici. |
Osservazioni:
CSimpleMap
fornisce il supporto per una semplice matrice di mapping di qualsiasi tipo T
specificato, che gestisce una matrice non ordinata di elementi chiave e i relativi valori associati.
Il parametro TEqual
fornisce un mezzo per definire una funzione di uguaglianza per due elementi di tipo T
. Creando una classe simile a CSimpleMapEqualHelper, è possibile modificare il comportamento del test di uguaglianza per una determinata matrice. Ad esempio, quando si tratta di una matrice di puntatori, può essere utile definire l'uguaglianza in base ai valori a cui fanno riferimento i puntatori. L'implementazione predefinita usa operator==().
Sia CSimpleMap
CSimpleArray sono disponibili per la compatibilità con le versioni ATL precedenti e le implementazioni di raccolte più complete ed efficienti sono fornite da CAtlArray e CAtlMap.
A differenza di altre raccolte di mappe in ATL e MFC, questa classe viene implementata con una matrice semplice e le ricerche di ricerca richiedono una ricerca lineare. CAtlMap
deve essere usato quando la matrice contiene un numero elevato di elementi.
Requisiti
Intestazione: atlsimpcoll.h
Esempio
// Create a map with an integer key and character pointer value
CSimpleMap<int, char *> iArray;
CSimpleMap::Add
Aggiunge una chiave e un valore associato alla matrice della mappa.
BOOL Add(const TKey& key, const TVal& val);
Parametri
key
Chiave.
val
Valore associato.
Valore restituito
Restituisce TRUE se la chiave e il valore sono stati aggiunti correttamente, FALSE in caso contrario.
Osservazioni:
Ogni coppia chiave e valore aggiunta fa sì che la memoria della matrice di mapping venga liberata e riallocata, per garantire che i dati per ognuno vengano sempre archiviati in modo contiguo. Ovvero, il secondo elemento chiave segue sempre direttamente il primo elemento chiave in memoria e così via.
CSimpleMap::_ArrayElementType
Typedef per il tipo di chiave.
typedef TVal _ArrayElementType;
CSimpleMap::_ArrayKeyType
Typedef per il tipo di valore.
typedef TKey _ArrayKeyType;
CSimpleMap::CSimpleMap
Costruttore.
CSimpleMap();
Osservazioni:
Inizializza i membri dati.
CSimpleMap::~CSimpleMap
Distruttore.
~CSimpleMap();
Osservazioni:
Libera tutte le risorse allocate.
CSimpleMap::FindKey
Trova una chiave specifica.
int FindKey(const TKey& key) const;
Parametri
key
Chiave da ricercare.
Valore restituito
Restituisce l'indice della chiave, se trovato, in caso contrario restituisce -1.
CSimpleMap::FindVal
Trova un valore specifico.
int FindVal(const TVal& val) const;
Parametri
val
Valore per il quale eseguire la ricerca.
Valore restituito
Restituisce l'indice del valore se viene trovato, in caso contrario restituisce -1.
CSimpleMap::GetKeyAt
Recupera la chiave in corrispondenza dell'indice specificato.
TKey& GetKeyAt(int nIndex) const;
Parametri
nIndex
Indice della chiave da restituire.
Valore restituito
Restituisce la chiave a cui fa riferimento nIndex.
Osservazioni:
L'indice passato da nIndex deve essere valido affinché il valore restituito sia significativo.
CSimpleMap::GetSize
Restituisce il numero di voci nella matrice di mapping.
int GetSize() const;
Valore restituito
Restituisce il numero di voci (una chiave e un valore è una voce) nella matrice di mapping.
CSimpleMap::GetValueAt
Recupera il valore in corrispondenza dell'indice specifico.
TVal& GetValueAt(int nIndex) const;
Parametri
nIndex
Indice del valore da restituire.
Valore restituito
Restituisce il valore a cui fa riferimento nIndex.
Osservazioni:
L'indice passato da nIndex deve essere valido affinché il valore restituito sia significativo.
CSimpleMap::Lookup
Restituisce il valore associato alla chiave specificata.
TVal Lookup(const TKey& key) const;
Parametri
key
Chiave.
Valore restituito
Restituisce il valore associato. Se non viene trovata alcuna chiave corrispondente, viene restituito NULL.
CSimpleMap::Remove
Rimuove una chiave e un valore corrispondente.
BOOL Remove(const TKey& key);
Parametri
key
Chiave.
Valore restituito
Restituisce TRUE se la chiave e il valore corrispondente sono stati rimossi correttamente, false in caso contrario.
CSimpleMap::RemoveAll
Rimuove tutte le chiavi e i valori.
void RemoveAll();
Osservazioni:
Rimuove tutte le chiavi e i valori dall'oggetto matrice di mapping.
CSimpleMap::RemoveAt
Rimuove una chiave e un valore associato in corrispondenza dell'indice specificato.
BOOL RemoveAt(int nIndex);
Parametri
nIndex
Indice della chiave e valore associato da rimuovere.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE se l'indice specificato è un indice non valido.
CSimpleMap::ReverseLookup
Restituisce la chiave associata al valore specificato.
TKey ReverseLookup(const TVal& val) const;
Parametri
val
Valore .
Valore restituito
Restituisce la chiave associata. Se non viene trovata alcuna chiave corrispondente, viene restituito NULL.
CSimpleMap::SetAt
Imposta il valore associato alla chiave specificata.
BOOL SetAt(const TKey& key, const TVal& val);
Parametri
key
Chiave.
val
Nuovo valore da assegnare.
Valore restituito
Restituisce TRUE se la chiave è stata trovata e il valore è stato modificato correttamente, false in caso contrario.
CSimpleMap::SetAtIndex
Imposta la chiave e il valore in corrispondenza di un indice specificato.
BOOL SetAtIndex(
int nIndex,
const TKey& key,
const TVal& val);
Parametri
nIndex
Indice, che fa riferimento alla chiave e all'associazione di valori da modificare.
key
Nuova chiave.
val
Nuovo valore.
Valore restituito
Restituisce TRUE se ha esito positivo, FALSE se l'indice non è valido.
Osservazioni:
Aggiorna sia la chiave che il valore a cui punta nIndex.