Differenza tra il vettore e l'elenco

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, i. e. , numeri interi, punti mobili o caratteri ed è definito 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 vengono utilizzati per mantenere l'array e accedere agli elementi. Qui puoi accedere a qualsiasi elemento in modo casuale usando l'operatore "[]". In questo modo diventa 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. Viene selezionato un vettore ogni volta che non è necessario inserire o eliminare nel centro
(elenco) o dal lato anteriore.
Il numero di elementi in una matrice può variare notevolmente.
Esempio:
vettore V;
V. inserire (V. begin (), 3);
asserire (V. Size () == 1 && V. capacity ()> = 1 && V [0] == 3);

Elenchi
Gli elenchi sono "sequenze a doppio collegamento" 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:
#include
// elenca la definizione del modello di classe
....
int main ()
{
int array [4] = {2, 6, 4, 8};
std:: valori di lista;
std:: elenca altri valori;

Riepilogo:
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. Elenchi e 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 una lista diminuisce alla metà, i.e. , 50 percento.