Elenco vs Vector C ++ confrontato

Elenco vs Vector C ++ confrontato
Elenco e vettori entrambi sono inclusi nella categoria delle strutture di dati.

Elenco in c++

Un elenco è una sequenza che supporta l'attraversamento sia in avanti che all'indietro, ed è noto per essere un elenco sequenziato a doppio legame. Possiamo inserire eliminare gli articoli in qualsiasi posizione, all'inizio, alla fine e anche nel mezzo.

Elenco X;
X.insert_begin (7);
X.delete_end ();

Il consumo di tempo, noto attraverso la complessità, è lo stesso per l'inserimento e la cancellazione in qualsiasi momento dell'elenco. L'elenco viene utilizzato per archiviare gli elementi in esso e il loro indirizzo con esso. Questi indirizzi sono puntati attraverso i puntatori. Questi puntatori aiutano a accedere facilmente al valore nelle posizioni successive o precedenti per l'attraversamento nella direzione all'indietro e in avanti. La memoria nell'elenco si trova in modo dinamico ogni volta che aggiungiamo un nuovo elemento all'elenco.

Perché dovremmo usare un elenco?

La struttura dei dati dell'elenco mostra una prestazione migliore durante l'inserimento di dati, eliminazione o spostamento di elementi da un punto a un altro. È anche buono nell'uso di algoritmi che eseguono le operazioni in modo efficace.

Sintassi

Elenco < class Type, class Alloc =allocator > Elenco delle classi;

T: rappresenta il tipo di dati di elementi. Possiamo utilizzare qualsiasi tipo di dati. Alloc: Descrive l'oggetto dell'allocatore. Viene utilizzata una classe di allocatore. Dipende dal valore e utilizza un modo semplice per allocare la memoria.

Funzionamento dell'elenco C ++

L'elenco funziona in modo tale che in primo luogo, dobbiamo aggiungere una libreria di elenco per operare con tutte le funzioni che fornisce efficacemente nel nostro programma. All'interno del programma, viene dichiarato un elenco come abbiamo descritto in sintassi. Il metodo è abbastanza semplice. Il tipo di dati di elementi è definito con il nome dell'elenco. Utilizzando un operatore di assegnazione, inseriamo i valori interi nell'elenco. Tutti gli elementi vengono visualizzati utilizzando un ciclo per visualizzare ogni elemento presente in ogni indice.

Vector in c++

Il vettore è un array dinamico che può ridimensionarsi automaticamente quando viene aggiunto o eliminato qualsiasi elemento. Gli elementi che vengono inseriti nei vettori sono inseriti in una conservazione contigua in modo che siano facilmente accessibili con l'aiuto di iteratori. Gli elementi vengono inseriti dal retro del vettore.

Vector X;
X.inserire (7);
X.eliminare();

L'inserimento dei dati alla fine richiede un tempo differenziale. Mentre gli articoli vengono rimossi dai vettori usando un tempo costante.

Perché dovremmo usare i vettori?

Preferiamo utilizzare un contenitore vettoriale nel programma C ++ quando non dobbiamo menzionare le dimensioni dei dati prima di iniziare il programma. Usando i vettori, non richiediamo di impostare alcuna dimensione massima del contenitore.

Sintassi

vettore vector_name (elementi);

La sintassi viene avviata utilizzando una parola chiave vettoriale. Un tipo di dati è un tipo di elementi/elementi da inserire nei vettori. 'Nome' mostra il nome di un vettore o dell'elemento dati. Gli "elementi" rappresentano il numero di elementi inseriti. questo è un parametro opzionale.

Funzionamento di vettori C ++

Nel programma principale, come descritto dalla sintassi, dichiariamo il contenitore vettoriale fornendo il tipo di dati degli elementi e il nome di un vettore. Dopo aver inserito i valori del vettore, visualizzeremo tutti gli elementi usando un loop per. Un iteratore aiuterà a iterare durante il ciclo. In questo modo, un vettore funziona nel linguaggio di programmazione C ++.

Differenze tra elenchi e vettori in c++

Cancellazione e inserimento

Sia l'inserimento che la cancellazione degli articoli nell'elenco sono molto efficienti rispetto ai vettori. Questo perché mentre l'inserimento di dati all'inizio, alla fine o nel mezzo dell'elenco richiede uno o due puntatori da scambiare.

D'altra parte, nei vettori, la procedura di inserimento e cancellazione farà spostare tutti gli elementi da uno. Inoltre, se la memoria non è sufficiente, viene assegnata più memoria e gli interi dati vengono trasferiti lì.

Quindi sia l'inserimento che la cancellazione negli elenchi sono più efficaci ed efficienti dei vettori.

Accesso casuale

Negli elenchi, è difficile che si verifichino accesso casuale in quanto si dice che all'interno degli elenchi è presente una lista doppiamente collegata. Quindi, se si desidera accedere al 6 ° elemento, devi prima iterare i primi 5 elementi nell'elenco.

E nel caso dei vettori, tutti gli elementi sono archiviati in posizioni di memoria contigue per eseguire l'accesso casuale nei vettori.

Uso di puntatori

Dobbiamo utilizzare i puntatori nell'elenco per archiviare l'indirizzo. Quindi, secondo i programmatori di esperti, è molto logico mentre si tratta di puntatori negli elenchi. Lavorare con elenchi è considerato difficile rispetto ai vettori perché i vettori utilizzano operazioni normali come array.

Ecco una rappresentazione tabulare di alcune importanti differenze tra elenchi e vettori.

Vector in c++ Elenco in c++
La memoria utilizzata è contigua. Utilizza una memoria non contigua.
Ha una dimensione predefinita. Non ci sono dimensioni predefinite nel caso degli elenchi.
Nei vettori, lo spazio è assegnato ai dati presenti solo in esso. Spazio extra è richiesto negli elenchi per i dati e per i nodi per archiviare gli indirizzi in esso.
L'inserimento di elementi alla fine utilizza tempo costante in qualsiasi momento del vettore; è 0. Il processo di cancellazione nell'elenco è molto economico da qualsiasi punto.
L'accesso casuale è possibile facilmente. È impossibile richiedere l'accesso casuale nell'elenco.

Implementazione dell'elenco

In questo esempio, abbiamo utilizzato operazioni come la visualizzazione dei dati nelle funzioni di elenco, inverti e ordinamento. Inoltre, vengono utilizzate anche le funzioni di inizio () e end ().

La funzione di visualizzazione è dichiarata separatamente. Questo utilizza l'inizio () e la fine () per attraversare l'elenco e visualizzare tutti gli elementi usando l'oggetto. Abbiamo creato due elenchi qui. Entrambi gli elenchi vengono inseriti anche per la parte anteriore e la parte posteriore. I dati verranno inseriti da entrambe le direzioni.

Dopodiché, chiameremo la funzione di visualizzazione per vedere tutti i suoi contenuti. E usa anche le funzioni integrate come il retro e l'ordinamento.

Produzione:

Implementazione del vettore

Questo esempio include la creazione di vettoriali. Viene creato un singolo vettore, ma inseriamo 5 valori utilizzando un loop "per".

Dopo aver inserito i dati, visualizzeremo le dimensioni del vettore creato da tutti gli elementi al suo interno. Successivamente, inseriamo un nuovo valore utilizzando di nuovo un loop "per". Ma questa volta abbiamo usato le funzioni di inizio e fine (). Possiamo vedere che il valore viene inserito alla fine. E la dimensione del vettore viene anche aggiornata in base ai dati stessi.

Produzione:

Conclusione

"Elenco vs vettoriale C ++ confrontato" descrive le differenze tra l'elenco e il vettore. Inizialmente, abbiamo descritto in dettaglio l'elenco e i vettori e ci abbiamo lavorato. In modo che possa aiutare l'utente a discriminare tra questi contenitori. Due esempi sono implementati nel sistema operativo Ubuntu Linux che verifica la differenza nel dichiarare, inserire ed eliminare gli elementi dai contenitori.