Quali sono le differenze tra un array e un vettore in C ++? Un esempio delle differenze potrebbe essere incluso biblioteche, simbolismo, abilità, ecc.
Vettore
Gli array contengono un numero specifico di elementi di un tipo particolare. Affinché il compilatore possa riservare la quantità di spazio richiesta quando il programma viene compilato, è necessario specificare il tipo e il numero di elementi che l'array conterrà quando viene definito. Il compilatore deve essere in grado di determinare questo valore quando il programma viene compilato. Una volta definito un array, si utilizza l'identificatore dell'array insieme a un indice per accedere a elementi specifici dell'array. gli array [...] sono indicizzati a zero; cioè, il primo elemento è all'indice 0. Questo schema di indicizzazione è indicativo della stretta relazione in C ++ tra puntatori e array e le regole che il linguaggio definisce per l'aritmetica dei puntatori.
- Riferimento tascabile C ++
Vettore
Un vettore è una sequenza di oggetti di dimensioni dinamiche che fornisce
operator[]
un accesso casuale in stile array . La funzione membropush_back
copia i suoi argomenti tramite il costruttore di copia, aggiunge quella copia come ultimo elemento nel vettore e ne incrementa la dimensione di uno.pop_back
fa l'esatto contrario, rimuovendo l'ultimo elemento. L'inserimento o l'eliminazione di elementi dalla fine di un vettore richiede un tempo costante ammortizzato e l'inserimento o l'eliminazione da qualsiasi altra posizione richiede tempo lineare. Queste sono le basi dei vettori. C'è molto di più in loro. Nella maggior parte dei casi, un vettore dovrebbe essere la tua prima scelta su un array in stile C. Prima di tutto, sono dimensionati dinamicamente, il che significa che possono crescere secondo necessità. Non devi fare tutti i tipi di ricerca per capire una dimensione statica ottimale, come nel caso degli array C; un vettore cresce in base alle esigenze e può essere ridimensionato manualmente più grande o più piccolo se necessario. In secondo luogo, i vettori offrono il controllo dei limiti con laat
funzione membro (ma non conoperator[]
), in modo che tu possa fare qualcosa se fai riferimento a un indice inesistente invece di guardare semplicemente il tuo programma andare in crash o, peggio, continuare l'esecuzione con dati corrotti.- Ricettario C ++