Condividi tramite


Classe CTypedPtrMap

Fornisce un "wrapper" indipendente dai tipi per gli oggetti delle classi mappa di puntatori CMapPtrToPtr, CMapPtrToWord, CMapWordToPtre CMapStringToPtr.

Sintassi

template<class BASE_CLASS, class KEY, class VALUE>
class CTypedPtrMap : public BASE_CLASS

Parametri

BASE_CLASS
Classe base della classe mappa puntatore tipizzata; deve essere una classe map puntatore ( CMapPtrToPtr, CMapPtrToWordCMapWordToPtr, o CMapStringToPtr).

KEY
Classe dell'oggetto utilizzato come chiave per la mappa.

VALUE
Classe dell'oggetto archiviato nella mappa.

Membri

Metodi pubblici

Nome Descrizione
CTypedPtrMap::GetNextAssoc Ottiene l'elemento successivo per l'iterazione.
CTypedPtrMap::Lookup Restituisce un KEY oggetto basato su un oggetto VALUE.
CTypedPtrMap::RemoveKey Rimuove un elemento specificato da una chiave.
CTypedPtrMap::SetAt Inserisce un elemento nella mappa; sostituisce un elemento esistente se viene trovata una chiave corrispondente.

Operatori pubblici

Nome Descrizione
CTypedPtrMap::operator [ ] Inserisce un elemento nella mappa.

Osservazioni:

Quando si usa CTypedPtrMap, la funzionalità di controllo dei tipi C++ consente di eliminare gli errori causati da tipi di puntatore non corrispondenti.

Poiché tutte le CTypedPtrMap funzioni sono inline, l'uso di questo modello non influisce significativamente sulle dimensioni o sulla velocità del codice.

Per altre informazioni sull'uso CTypedPtrMapdi , vedere gli articoli Raccolte e classi basate su modelli.

Gerarchia di ereditarietà

BASE_CLASS

CTypedPtrMap

Requisiti

Intestazione: afxtempl.h

CTypedPtrMap::GetNextAssoc

Recupera l'elemento della mappa in rNextPosition, quindi aggiorna rNextPosition per fare riferimento all'elemento successivo nella mappa.

void GetNextAssoc(
    POSITION& rPosition,
    KEY& rKey,
    VALUE& rValue) const;

Parametri

rPosition
Specifica un riferimento a un valore POSITION restituito da una chiamata precedente GetNextAssoc o BASE_CLASS::GetStartPosition .

KEY
Parametro del modello che specifica il tipo delle chiavi della mappa.

rKey
Specifica la chiave restituita dell'elemento recuperato.

VALUE
Parametro modello che specifica il tipo dei valori della mappa.

rValue
Specifica il valore restituito dell'elemento recuperato.

Osservazioni:

Questa funzione è più utile per scorrere tutti gli elementi della mappa. Si noti che la sequenza di posizione non corrisponde necessariamente alla sequenza di valori della chiave.

Se l'elemento recuperato è l'ultimo nella mappa, il nuovo valore di rNextPosition viene impostato su NULL.

Questa funzione inline chiama BASE_CLASS::GetNextAssoc.

CTypedPtrMap::Lookup

Lookup usa un algoritmo hash per trovare rapidamente l'elemento della mappa con una chiave che corrisponde esattamente.

BOOL Lookup(BASE_CLASS ::BASE_ARG_KEY key, VALUE& rValue) const;

Parametri

BASE_CLASS
Parametro modello che specifica la classe di base della classe della mappa.

key
Chiave dell'elemento da cercare.

VALUE
Parametro del modello che specifica il tipo di valori archiviati in questa mappa.

rValue
Specifica il valore restituito dell'elemento recuperato.

Valore restituito

Diverso da zero se l'elemento è stato trovato; in caso contrario, 0.

Osservazioni:

Questa funzione inline chiama BASE_CLASS::Lookup.

CTypedPtrMap::operator [ ]

Questo operatore può essere usato solo sul lato sinistro di un'istruzione di assegnazione (un l-value).

VALUE& operator[ ](base_class ::base_arg_key key);

Parametri

VALUE
Parametro del modello che specifica il tipo di valori archiviati in questa mappa.

BASE_CLASS
Parametro modello che specifica la classe di base della classe della mappa.

key
Chiave dell'elemento da cercare o creare nella mappa.

Osservazioni:

Se non è presente alcun elemento della mappa con la chiave specificata, viene creato un nuovo elemento. Non esiste alcun "lato destro" (r-value) equivalente a questo operatore perché esiste una possibilità che una chiave non venga trovata nella mappa. Usare la funzione membro per il Lookup recupero degli elementi.

CTypedPtrMap::RemoveKey

Questa funzione membro chiama BASE_CLASS::RemoveKey.

BOOL RemoveKey(KEY key);

Parametri

KEY
Parametro del modello che specifica il tipo delle chiavi della mappa.

key
Chiave per l'elemento da rimuovere.

Valore restituito

Diverso da zero se la voce è stata trovata e rimossa correttamente; in caso contrario, 0.

Osservazioni:

Per altre osservazioni dettagliate, vedere CMapStringToOb::RemoveKey.

CTypedPtrMap::SetAt

Questa funzione membro chiama BASE_CLASS::SetAt.

void SetAt(KEY key, VALUE newValue);

Parametri

KEY
Parametro del modello che specifica il tipo delle chiavi della mappa.

key
Specifica il valore della chiave di newValue.

newValue
Specifica il puntatore all'oggetto che rappresenta il valore del nuovo elemento.

Osservazioni:

Per altre osservazioni dettagliate, vedere CMapStringToOb::SetAt.

Vedi anche

Raccolta di esempi MFC
Grafico della gerarchia
Classe CMapPtrToPtr
Classe CMapPtrToWord
Classe CMapWordToPtr
Classe CMapStringToPtr