Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Differenza tra vettore e lista in C + +

Il C + + Standard Template Library contiene due contenitori simili ma distinte : il vettore e la lista . Un vettore è un insieme di dati in modo sequenziale organizzati che possono crescere o diminuire dinamicamente , una lista è un insieme di elementi collegati che non sono necessariamente in sequenza disposti in memoria , ma può essere letta in sequenza , perché ogni elemento ha un link alla voce successiva . Imparare le differenze tra il vettore e l'elenco può aiutare a scrivere le soluzioni più ottimizzato in C + + . Inserimento Velocità

I dati contenuti da un vettore è organizzato in modo sequenziale nella memoria , il che significa che se si inserisce un elemento all'inizio di un vettore , ogni elemento del vettore deve essere spostato " verso il basso " da uno. Questo è computazionalmente costoso, soprattutto per le grandi vettori. Questa riduzione delle prestazioni viene ogni volta che viene inserito o rimosso da qualsiasi posizione , tranne l'ultimo elemento del vettore di un elemento. Con una lista , i dati non sono necessariamente disposti sequenzialmente in memoria , invece , ogni elemento della lista contiene un link alla voce successiva nell'elenco. Quando si inserisce in un elenco , l'elemento può essere posizionato in qualsiasi punto della memoria , che rende l'inserimento in un elenco molto meno costoso che l'inserimento in un vettore .
Ordinamento

il contenitore lista ha una funzione di ordinamento incorporata che consente di ordinare gli elementi base di un dato criterio . Il vettore , tuttavia, non ha questa funzione incorporata , e quindi è necessario scrivere il codice di ordinamento , se si desidera ordinare un vettore .
Random Access
< br Liste >

hanno tempi di accesso più lento random rispetto vettori. In un vettore , un elemento si può accedere direttamente dal suo indice. Questo dà il vettore tempo di accesso casuale molto veloce. Con una lista , d'altra parte , è possibile accedere direttamente solo il primo e l'ultimo elemento , ma è necessario scorrere l' elenco per accedere ad altri elementi , questo può essere molto lento per grandi liste
ridimensionamento .

Vettori crescere dinamicamente come elementi vengono aggiunti a loro. Quando un vettore cresce, si raddoppia il numero di elementi che può contenere. Questo può forzare l'intero vettore di essere spostato in un altro posto in memoria , che può essere computazionalmente costoso . Le liste non hanno bisogno di memorizzare i loro elementi contigui in memoria , e quindi possono aumentare o ridurre un elemento alla volta , senza nemmeno aver bisogno di copiare l'intero elenco in una nuova posizione .

 

Programmazione © www.354353.com