Classe CTypedPtrMap
Fornisce un "wrapper" indipendente dai tipi per gli oggetti delle classi mappa di puntatori CMapPtrToPtr
, CMapPtrToWord
, CMapWordToPtr
e 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
, CMapPtrToWord
CMapWordToPtr
, 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 CTypedPtrMap
di , 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