Condividi tramite


Classe 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

CArray::CArray

Crea una matrice vuota.

Metodi pubblici

Nome

Descrizione

CArray::Add

Aggiungere un elemento alla fine della matrice, ingrandito la matrice se necessario.

CArray::Append

Aggiunge un'altra matrice alla matrice, ingrandito la matrice quando necessario

CArray::Copy

Copia un'altra matrice alla matrice, ingrandito la matrice se necessario.

CArray::ElementAt

Restituisce un riferimento temporaneo al puntatore dell'elemento nella matrice.

CArray::FreeExtra

Libera la memoria inutilizzata sul limite superiore corrente.

CArray::GetAt

Restituisce il valore a un indice specificato.

CArray::GetCount

Ottiene il numero di elementi nella matrice.

CArray::GetData

Consente l'accesso a elementi nella matrice. Può essere NULL.

CArray::GetSize

Ottiene il numero di elementi nella matrice.

CArray::GetUpperBound

Restituisce il maggiore indice valido.

CArray::InsertAt

Inserire un elemento (o tutti gli elementi in un'altra matrice) a un indice specificato.

CArray::IsEmpty

Determina se la matrice è vuota.

CArray::RemoveAll

Rimuove tutti gli elementi della matrice.

CArray::RemoveAt

Rimuove un elemento a un valore specifico.

CArray::SetAt

Imposta il valore di indice specificato; matrice non consentita per lo sviluppo.

CArray::SetAtGrow

Imposta il valore di indice specificato; ingrandito la matrice se necessario.

CArray::SetSize

Imposta il numero di elementi da includere nella matrice.

Operatori pubblici

Nome

Descrizione

CArray::operator []

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à

CObject

CArray

Requisiti

Header: afxtempl.h

Vedere anche

Riferimenti

Classe CObject

Grafico delle gerarchie

Classe CObArray

Concetti

L'esempio MFC SI RACCOGLIE

Altre risorse

Supporti delle classi di raccolte