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

Naviga con la tastiera

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 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 alternativa...
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 dell'esecuzione...
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 creare una piattaforma E-learning

Ogni giorno siamo bombardati da tantissime informazioni che ci arrivano da tutte le parti. Abbiamo iniziato a sviluppare una certa curiosità per tutto ciò che ci circonda, alla ricerca costante di nuove informazioni da inserire nella nostra mente. Imparare...
Programmazione

Come usare i socket in C su Linux

Un argomento fondamentale, quando si parla di informatica, riguarda la comunicazione intesa nel suo significato più ampio.La comunicazione può avere luogo all'interno del computer, ad esempio con più processi che parlano tra di loro, o all'esternocon...
Programmazione

Come creare una calcolatrice con Dev C++

Dev C++ per il momento rappresenta un IDE completamente gratuito, distribuito e messo a disposizione totale dell'utente che vorrà usufruirne, ed è sotto la Licenza GNU per la programmazione in linguaggio C e C++. Quando usiamo il termine IDE gratuito...
Programmazione

Come generare numeri casuali in Javascript

Javascript è comunemente utilizzato per la programmazione Web, per la creazione di siti internet e applicazioni web, e ha la caratteristica di poter generare degli effetti interattivi, dinamici ad impatto, molto accattivanti, in qualsiasi pagina web di...
Programmazione

Inserire elementi in una lista in C++

Molti programmatori Java o utenti principianti, trovano il linguaggio C++ uno tra i più ostici nel suo utilizzo. Java, noto per la sua semplicità, offre dei costrutti utili per gestire e manipolare una struttura dinamica quali una Lista di oggetti. Vedremo...