Nessun elemento può essere incluso davanti all'array. Con C ++ 17 e superiore, un elemento può essere incluso davanti al vettore usando la funzione membro EMPlace ().
Per il resto di questo articolo, sono illustrate le differenze tra il vettore e l'array. Per ogni punto, viene menzionata l'incapacità dell'array, o il suo modo smusso o ingombrante di raggiungere lo stesso obiettivo viene dato.
Contenuto dell'articolo
Creazione di un vettore o un array
Un vettore può essere creato in diversi modi. Il modo base è il seguente:
vettoreDi conseguenza, un array verrebbe creato come segue:
char arr [] = 'a', 'b', 'c', 'd', 'e';Nota la differenza negli operandi che si trovano a sinistra dell'operatore di assegnazione. Il numero di elementi per il vettore può quindi essere aggiunto o ridotto, ma la dimensione dell'array rimane fissa, a 5 in questo caso.
Per avere e utilizzare un vettore in un programma, il programma dovrebbe iniziare con:
#includerePer avere e utilizzare un array in un programma, non è necessaria alcuna direttiva preprocessore.
Dimensioni crescenti
Il seguente codice mostra come un vettore di inizialmente due elementi, viene aumentato a quattro elementi, usando la sua funzione membro push_back ():
vettoreQuesto codice dovrebbe essere in un corpo di funzione. Per l'array e poiché l'array ha una dimensione fissa, crea un array per il numero massimo di elementi previsti, prima di aggiungere gli elementi usando l'operatore []. Esempio:
char arr [4];Inoltre, questo codice dovrebbe essere all'interno di un corpo di funzione.
Inserimento
Nel seguente codice, un elemento viene inserito davanti all'elemento puntato dall'iteratore, p:
vectorvtr = 'a', 'b', 'd', 'e';L'output è:
A b c d eLa prima dichiarazione del codice crea l'oggetto vettoriale. "C", che avrebbe dovuto essere di fronte a "d" per ordine alfabetico, è assente qui. La seconda affermazione restituisce un iteratore che indica il primo elemento del vettore. Le due dichiarazioni successive aumentano il puntatore per indicare "D". L'istruzione dopo l'assegnazione di 'C' a CH. In quel segmento di codice, l'ultima istruzione inserisce "C" di fronte a "D", usando l'iteratore.
Per quanto riguarda l'array, non è possibile inserire un elemento. A causa di limitazioni come questa per l'array, il vettore e altri contenitori sono stati progettati.
Nota: la funzione membro insert () può anche essere utilizzata per inserire un elemento di fronte a un vettore.
Aggiunta
Apprendendo significa aggiungere elementi sul retro. La funzione membro push_back () può essere utilizzata per aggiungere elementi sul retro del vettore - vedi sopra. L'array non può essere aggiunto a. L'unico modo per aggirare questo problema per l'array è creare un array per la dimensione massima prevista. Metti gli elementi dall'inizio. Quindi alcuni spazio (celle) verranno lasciati indietro nell'array. Quindi se è necessario aggiungere elementi sul retro, adattarsi agli elementi (valori) negli spazi dietro che sono vuoti (che hanno valori predefiniti).
Cancellare un elemento
Per il vettore, un elemento può essere cancellato usando l'iteratore. L'iteratore indicherà quindi l'elemento successivo, che era lì prima della cancellazione. Il seguente codice cancella 'B':
vectorvtr = 'a', 'b', 'c', 'd', 'e';Nessun elemento dell'array può essere cancellato, anche se può essere modificato.
Chiaro
Tutti gli elementi del vettore possono essere rimossi, con la sua funzione membro Clear (), come segue:
vectorvtr = 'a', 'b', 'c', 'd', 'e';L'output non è niente. La cosa migliore da fare con l'array è sostituire tutti gli elementi con un valore predefinito. Con l'intero, il valore predefinito è 0. Il seguente codice illustra:
int arr [] = 1, 2, 3, 4, 5;L'output è:
0 0 0 0 0Con il carattere, il valore predefinito è il carattere NUL, \ 0. Il seguente codice illustra:
char arr [] = 'a', 'b', 'c', 'd', 'e';L'output non mostra nulla.
Scambiarsi
Anche se due vettori non hanno le stesse dimensioni, i loro elementi possono essere scambiati, con la funzione Swap () Member. Il seguente codice mostra questo:
vector vtr1 = 'a', 'b', 'c', 'd', 'e';Per scambiare due array, devono essere della stessa lunghezza. L'array non ha funzioni membri (nessun metodo). Quindi, per scambiare elementi con array, un codice dovrebbe essere scritto come segue:
char arr1 [] = 'a', 'b', 'c', 'd', 'e';L'output è:
Contenuto del nuovo ARR1:Misurare
La dimensione del vettore viene restituita dalla funzione del suo membro, dimensione (). Cioè, è determinato in fase di esecuzione. Illustrazione:
vectorvtr = 'a', 'b', 'c', 'd';Può anche essere fatto così:
char arr [7] = 'a', 'b', 'c', 'd';Cioè, mettere un numero (dimensione) che è superiore alla dimensione presunta (di 4 in questo caso). Tuttavia, il numero non dovrebbe essere inferiore al numero di elementi iniziali.
Array di lunghezza variabile
La dimensione dell'array può, tuttavia, essere data (non determinata) a tempo di esecuzione. In questo caso, l'array dovrà essere creato in una funzione o in un costrutto simile. Il seguente programma illustra questo:
#includereL'output è:
A b c dConclusione
Le principali differenze tra il vettore e l'array sono le seguenti: la dimensione (lunghezza) di un vettore può essere aumentata naturalmente, ma quella di un array è fissa e non può essere aumentata. Gli elementi possono essere inseriti all'interno di un vettore ma non possono essere inseriti all'interno di un array. Gli elementi possono essere aggiunti alla fine del vettore ma non possono essere aggiunti alla fine dell'array. Il vettore è una classe da cui vengono istanziati altri oggetti vettoriali, ma l'array è un puntatore costante a una sequenza di dati dello stesso tipo. Il vettore ha metodi (funzioni del membro), ma l'array no, e quindi il vettore è chiamato struttura dei dati. Mentre il puntatore può essere utilizzato con l'array, gli iteratori vengono utilizzati con il vettore. Un iteratore è un puntatore elaborato. L'array mostra la sua incapacità o ha un modo schietto o ingombrante di raggiungere lo stesso obiettivo per ogni differenza.