Classe di CArray
Supporta le matrici che sono le matrici c, ma può ridurre e crescere dinamicamente in base alle esigenze.
template < class TYPE, class ARG_TYPE = const TYPE& >
class CArray :
public CObject
Parametri
TYPE
Il parametro di modello che specifica il tipo di oggetti archiviare nella matrice.TYPE è un parametro restituito da CArray.ARG*_*TYPE
Il parametro di modello che specifica il tipo di argomento utilizzato per accedere agli oggetti archiviare nella matrice.Spesso un riferimento a TYPE.ARG_TYPE è un parametro passato a CArray.
Membri
Costruttori pubblici
Nome |
Descrizione |
---|---|
Crea una matrice vuota. |
Metodi pubblici
Nome |
Descrizione |
---|---|
Aggiungere un elemento alla fine della matrice, ingrandito la matrice se necessario. |
|
Aggiunge un'altra matrice alla matrice, ingrandito la matrice quando necessario |
|
Copia un'altra matrice alla matrice, ingrandito la matrice se necessario. |
|
Restituisce un riferimento temporaneo al puntatore dell'elemento nella matrice. |
|
Libera la memoria inutilizzata sul limite superiore corrente. |
|
Restituisce il valore a un indice specificato. |
|
Ottiene il numero di elementi nella matrice. |
|
Consente l'accesso a elementi nella matrice.Può essere NULL. |
|
Ottiene il numero di elementi nella matrice. |
|
Restituisce il maggiore indice valido. |
|
Inserire un elemento (o tutti gli elementi in un'altra matrice) a un indice specificato. |
|
Determina se la matrice è vuota. |
|
Rimuove tutti gli elementi della matrice. |
|
Rimuove un elemento a un valore specifico. |
|
Imposta il valore di indice specificato; matrice non consentita per lo sviluppo. |
|
Imposta il valore di indice specificato; ingrandito la matrice se necessario. |
|
Imposta il numero di elementi da includere nella matrice. |
Operatori pubblici
Nome |
Descrizione |
---|---|
Imposta o ottiene l'elemento all'indice specificato. |
Note
Gli indici di matrice iniziano sempre nella posizione 0.È possibile decidere se correggere il limite superiore o abilitare la matrice per espandere quando si aggiungono elementi al limite corrente.Viene allocata memoria in modo contiguo al limite superiore, anche se alcuni elementi sono null.
[!NOTA]
La maggior parte dei metodi che ridimensiona un oggetto CArray o aggiungono elementi a utilizzare memcpy_s agli elementi di spostamento.Si tratta di un problema perché memcpy_s non è compatibile con alcuni oggetti che richiedono al costruttore di essere chiamati.Se gli elementi in CArray non sono compatibili con memcpy_s, è necessario creare un nuovo CArray di dimensioni corrette.È quindi possibile utilizzare CArray::Copy e CArray::SetAt per popolare la nuova matrice poiché questi metodi utilizzando un operatore di assegnazione memcpy_s.
Come matrice di tipo c, il tempo di accesso per un elemento indicizzato CArray è costante e è indipendente dalla dimensione della matrice.
Suggerimento |
---|
Prima di utilizzo di una matrice, utilizzare SetSize per stabilire le dimensioni e per allocare memoria per.Se non si utilizza SetSize, aggiungere elementi alla matrice in modo che venga ridistribuito e alla copia di frequente.Il frequente riallocazione e copiare sono inefficaci e possono frammentare la memoria. |
Se è necessario un dump dei singoli elementi di una matrice, è necessario impostare la profondità dell'oggetto CDumpContext a 1 o maggiore.
Alcune funzioni membro della classe chiamano funzioni di supporto globali che devono essere personalizzate per la maggior parte di utilizzare la classe CArray.Vedere l'argomento Supporto della classe di raccolta nella sezione Globals e di macro MFC.
La derivazione della classe di matrice è simile alla derivazione dell'elenco.
Per ulteriori informazioni su come utilizzare CArray, vedere l'articolo Raccolte.
Gerarchia di ereditarietà
CArray
Requisiti
Header: afxtempl.h