Differenze tra Vector e Liste in C++

Tramite: O2O 12/11/2018
Difficoltà: media
16

Introduzione

Se state studiando informatica ed in particolare approfondendo i linguaggi usati dai programmatori di software, saprete che tra le tante voci ci sono quelle inerenti i Vector e le Liste in C++. In riferimento a ciò, è importante sottolineare che esistono delle differenze sostanziali tra i due, per cui è opportuno conoscerli a fondo entrambi in modo da fare poi le giuste valutazioni prima di procedere con la programmazione. A tale proposito nei passi successivi di questa guida, analizzeremo le differenze che riguardano i Vector e le Liste in C++ in merito all'inserimento, alla cancellazione, all'acceso casuale e alle funzioni speciali.

26

Occorrente

  • Software di programmazione
36

Inserire e cancellare gli elementi da una lista

In questo articolo discuteremo quindi le differenze tra i Vector e le Liste in C ++, e per iniziare diciamo subito che sia i primi che le seconde sono dei contenitori sequenziali della libreria di modelli standard C ++. Ma tuttavia ci sono molte altre differenze tra loro a causa dell'implementazione interna. Ad esempio la lista memorizza gli elementi in una posizione di memoria non contigua ovvero ne utilizza internamente una doppiamente collegata, mentre il vettore memorizza quegli elementi in posizioni contigue come un array cioè uno schieramento. Premesso ciò, la prima differenza tra i Vector e le Liste in C++ sta nell'inserimento e nella cancellazione. Entrambi in una lista sono molto efficienti rispetto al vettore perché per inserire un elemento all'inizio, alla fine o al centro solo un paio di puntatori vengono scambiati, mentre inserendo e cancellando il vettore all'inizio o al centro tutti gli elementi si spostano di uno. Da ciò si evince che in C++ l'inserimento e la cancellazione nelle liste sono molto più efficienti del vettore.

46

Accedere agli elementi usando gli algoritmi

Poiché in C++ le liste sono implementate internamente non è possibile ottenere l'accesso casuale, e ciò significa che per arrivare al 15° elemento nell'elenco è necessario scorrere i primi 14 uno per uno. Nei Vector invece quest'ultimo memorizza elementi in posizioni di memoria contigue come un array. Pertanto, nel vettore è possibile l'accesso casuale, ovvero potete arrivare direttamente al 15° elemento senza sfogliare gli altri uno per uno ed usando degli appositi algoritmi del tipo STL.

Continua la lettura
56

Preferire l'accesso con funzioni extra

A questo punto avendo appreso nel passo precedente della guida che le liste non forniscono l'accesso casuale, molti algoritmi STL non possono essere utilizzati; infatti, le liste assegnano alcune funzioni extra per Ordinamento, Splicing, Rimozione di elementi e Identificazione di quelli unici. Vector che invece fornisce l'accesso casuale con normali algoritmi STL, si preferisce poiché l'operazione è molto più semplificata.

66

Consigli

Alcuni link che potrebbero esserti utili:

Potrebbe interessarti anche

Segnala contenuti non appropriati

Tipo di contenuto
Devi scegliere almeno una delle opzioni
Descrivi il problema
Devi inserire una descrizione del problema
Si è verificato un errore nel sistema. Riprova più tardi.
Verifica la tua identità
Devi verificare la tua identità
chiudi
Grazie per averci aiutato a migliorare la qualità dei nostri contenuti

Guide simili

Programmazione

Come creare un database di email

Un database di posta elettronica è una raccolta o un elenco di nomi e indirizzi e-mail dei clienti effettivi e potenziali della tua attività. Può essere compilato raccogliendo gli indirizzi di persone che manifestano interesse nella tua azienda o nei...
Programmazione

Regole per programmare in Linda

Linda è il nome di un linguaggio di programmazione non molto diffuso. È un linguaggio che estende quelli più conosciuti, come Java e C++, in modo tale da poter sviluppare applicazioni in ambiente distribuito. Appartiene alla famiglia di linguaggi a...
Programmazione

Come realizzare un array list in Java

La classe Arraylist implementa l'interfaccia List ed è basata su una struttura di dati Array. È' ampiamente utilizzato per la funzionalità e la flessibilità che offre. La maggior parte degli sviluppatori sceglie Arraylist su Array poiché è un'ottima...
Programmazione

La funzione main nel C++

La funzione main è, come dice lo stesso nome, la funzione principale del programma. Questa funzione è l'entry point di ogni programma C++, ovvero il punto in cui il programma inizia, ed è anche il punto in cui il programma finisce, perché la fine...
Programmazione

Introduzione alla programmazione in F#

WIndows è uno dei sistemi operativi che vanno per la maggiore grazie alla sua intuitività e alla presenza di tantissimi applicativi utili a tanti scopi differenti. Così come avviene per altri sistemi operativi, anche su Windows è possibile dedicarsi...
Programmazione

Regole per programmare in Ladder

In questo articolo imparerete le 5 regole per programmare in Ladder. Il circuito in Ladder è simile in struttura, elementi, simboli e funzioni di controllo logico. Ci sono anche altri aspetti della fase, ma hanno molte differenze. Quindi per programmare...
Programmazione

Come ordinare una lista in Java

Java in campo informatico rappresenta senza dubbio uno dei sistemi di programmazione più diffusi e conosciuti. Ordinare una lista in Java potrebbe sembrare un'operazione piuttosto complicata, in modo particolare per i meno esperti del settore. In realtà...
Programmazione

Come implementare gli alberi in C

In informatica per rappresentare dei dati si usano le strutture dati. Le strutture dati sono dei metodi per organizzare dati. A seconda delle operazioni che vogliamo fare su un insieme di dati, possiamo scegliere una struttura dati invece che un'altra....