Differenza tra il vettore e la lista

Vector vs List

Spesso confondendo i programmatori, i vettori e le liste sono sequenze utilizzate negli array in C ++ e Java. I due termini contengono indirizzi di matrice ma con metodi diversi per mantenere gli array.
La cosa fondamentale che dobbiamo sapere è che un array è una "lista" che contiene alcuni o tutti i dati, cioè interi, punti mobili o caratteri ed è definita tra parentesi "[]."
In realtà, i vettori e le liste agiscono in base alle istanze. Diamo un'occhiata a questi due termini uno per uno.

Vettori
I vettori sono utilizzati in array holding e gli elementi di accesso. Qui puoi accedere a qualsiasi elemento in modo casuale usando l'operatore "[]". Diventa quindi facile esaminare tutti gli elementi o un elemento specifico con un'operazione vettoriale. Quindi se inserisci qualche oggetto alla fine, all'inizio o nel mezzo, i vettori avranno un punto positivo perché puoi accedere all'indirizzo casuale e apportare le modifiche lì. Tuttavia, i vettori sono un po 'lenti rispetto agli oggetti lista. I vettori sono considerati oggetti sincronizzati, efficienti nell'accesso casuale e conservano correttamente i dati con un elenco sincronizzato. Un vettore viene scelto ogni volta che non è necessario inserire o eliminare nel
medio (elenco) o frontale.
Il numero di elementi in una matrice può variare notevolmente.
Esempio:
vettore V;
V.insert (V.begin (), 3);
assert (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);

elenchi
Le liste sono "sequenze a doppio legame" che supportano sia l'attraversamento in avanti che quello di ritorno. Il tempo impiegato nell'inserimento e nella cancellazione all'inizio, alla fine e nel mezzo è costante. L'inserimento e lo splicing tra liste collegate non invalidano alcuna iterazione negli elementi. Solo la rimozione invalida l'iterazione. Non sono sincronizzati quindi non sono accessibili casualmente. L'ordine delle iterazioni può variare in base all'utente, ma non influisce sulle modifiche degli elementi. Sono più veloci dei vettori e sono ideali per l'inserimento e la cancellazione all'inizio, al centro e alla fine degli elenchi di elementi.

Esempio:
#includere
// elenca la definizione del modello di classe
... .
int main ()

int array [4] = 2, 6, 4, 8;
std :: valori di lista;
std :: lista otherValues;

Sommario:
1. Una lista non è sincronizzata mentre un vettore è.
2. Le liste non hanno dimensioni predefinite mentre un vettore ha una dimensione predefinita di 10.
3. Le liste e i vettori sono entrambi array in crescita dinamica.
4. Un elenco non è thread-safe mentre un vettore è thread-safe.
5. Gli elenchi, poiché si applicano solo all'addizione e alla cancellazione nella parte anteriore e posteriore, sono più veloci mentre
i vettori richiedono più CPU.
6. Un vettore cresce per la sua dimensione due volte mentre un elenco diminuisce a metà, cioè il 50%.