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 Tspecificato, 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.

Vedi anche

Cenni preliminari sulla classe