Raccolte
La libreria MFC fornisce classi di raccolte per gestire i gruppi di oggetti.Queste classi sono di due tipi:
Classi di raccolte create dai modelli C++
Classi di raccolte non create dai modelli
[!NOTA]
Se il codice utilizza già le classi di raccolte non template, è possibile continuare a utilizzare.Se si scrivono nuove classi di raccolte indipendenti dai tipi per i tipi di dati personalizzati, è consigliabile utilizzare le più recenti alle classi basate su modelli.
Forme della raccolta
Una classe di raccolte è caratterizzato da l “forma„ e dai tipi dei relativi elementi.La forma fa riferimento al modo in cui gli oggetti sono organizzati e archiviati dalla raccolta.MFC fornisce tre base forme di raccolta: elenchi, matrici e mapping (anche noto come i dizionari).È possibile selezionare la forma di raccolta che più appropriata al problema specifico di programmazione.
Ciascuna delle forme di libreria fornite viene descritta più avanti brevemente in questo argomento.Per confrontare le funzionalità delle forme utili per decidere quale è il ottimale per il programma, vedere Classe Recommendations for Choosing a Collection.
Elenco
La classe dell'elenco viene fornito un elenco ordinato e non sono indicizzate degli elementi, implementato doppio come elenco collegato.Un elenco include “intestazione„ e “un elemento tail,„ e aggiungere o rimuovere gli elementi intestazione o dalla, o inserire o eliminare elementi al centro, è molto velocemente.
Matrice
La classe di matrice fornisce una matrice dinamica ridimensionata, ordinata e Integer-indicizzata di oggetti.
Mapping (anche noto come un dizionario)
Una mappa è una raccolta che associa un oggetto principal a un oggetto di valore.
Le classi di raccolte Basate su modelli
Il modo più semplice per implementare una raccolta indipendente dai tipi che contiene gli oggetti di qualsiasi tipo è utilizzare una delle classi basate su template MFC.Per esempi di queste classi, vedere l'esempio In COLLECTMFC.
Nella tabella seguente sono elencate le classi di raccolte basate su template MFC.
Classi modello di raccolta
Contenuto di raccolta |
Matrici |
Elenchi |
Mappe |
---|---|---|---|
Raccolte di oggetti di qualsiasi tipo |
CArray |
CList |
CMap |
Le raccolte di puntatori agli oggetti di qualsiasi tipo |
CTypedPtrArray |
CTypedPtrList |
CTypedPtrMap |
Le classi di raccolte non basate su modelli
Se l'applicazione utilizza già le classi non template MFC, è possibile continuare a utilizzare.Tuttavia, per le nuove raccolte, è consigliabile utilizzare le classi basate su modelli.Nella tabella seguente sono elencate le classi collection MFC che non sono basate su modelli.
Classi di raccolte di non modello
Matrici |
Elenchi |
Mappe |
---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
|
CMapStringToPtr |
CStringArray |
|
CMapStringToString |
CWordArray |
|
CMapWordToOb |
CUIntArray |
|
CMapWordToPtr |
Le caratteristiche della tabella delle classi collection MFC in Classe Recommendations for Choosing a Collection descritte le classi collection MFC in termini di queste caratteristiche (diverso da forma:
Se la classe utilizza i modelli C++
Se gli elementi archiviati nella libreria possono essere serializzati
Se gli elementi archiviati nella libreria è possibile eseguire il dump per la diagnostica
Se la raccolta è indipendente dai tipi