Classi Array, List e Map

Per la gestione delle aggregazioni di dati, la libreria di classi fornisce un gruppo di classi di raccolta, ovvero matrici, elenchi e mappe, che possono contenere un'ampia gamma di oggetti e tipi predefiniti. Le raccolte vengono ridimensionate dinamicamente. Queste classi possono essere usate in qualsiasi programma, sia scritto per Windows o meno. Tuttavia, sono più utili per implementare le strutture di dati che definiscono le classi di documenti nel framework dell'applicazione. È possibile derivare facilmente classi di raccolte specializzate da queste classi oppure crearle in base alle classi modello. Per altre informazioni su questi approcci, vedere l'articolo Raccolte. Per un elenco delle classi di raccolta di modelli, vedere l'articolo Classi modello per matrici, elenchi e Mappe.

Le matrici sono strutture di dati unidimensionali archiviate in modo contiguo in memoria. Supportano un accesso casuale molto rapido poiché l'indirizzo di memoria di qualsiasi elemento specificato può essere calcolato moltiplicando l'indice dell'elemento in base alle dimensioni di un elemento e aggiungendo il risultato all'indirizzo di base della matrice. Ma le matrici sono molto costose se è necessario inserire elementi nella matrice, poiché l'intera matrice oltre l'elemento inserito deve essere spostato per fare spazio per l'inserimento dell'elemento. Le matrici possono aumentare e ridursi in base alle esigenze.

Gli elenchi sono simili alle matrici, ma vengono archiviati in modo molto diverso. Ogni elemento di un elenco include anche un puntatore agli elementi precedenti e successivi, rendendolo un elenco collegato doubly. È molto veloce aggiungere o eliminare elementi perché in questo modo comporta solo la modifica di alcuni puntatori. Tuttavia, la ricerca di un elenco può essere costosa perché tutte le ricerche devono iniziare a una delle estremità dell'elenco.

Mappe correlare un valore di chiave a un valore di dati. Ad esempio, la chiave di una mappa può essere una stringa e i dati di un puntatore in un elenco. Chiedere alla mappa di assegnare il puntatore associato a una determinata stringa. Le ricerche mappa sono veloci perché le mappe usano tabelle hash per le ricerche delle chiavi. Anche l'aggiunta e l'eliminazione di elementi è veloce. Mappe vengono spesso usati con altre strutture di dati come indici ausiliari. MFC usa un tipo speciale di mappa denominato mappa messaggi per eseguire il mapping dei messaggi di Windows a un puntatore alla funzione del gestore per tale messaggio.

Vedi anche

Cenni preliminari sulla classe