4° Anno TEORIA 6. Programmazione ad oggetti: il linguaggio C++ | Page 44

Quando abbiamo utilizzato il linguaggio C ed avevamo bisogno di di un array con lunghezza variabile dovevamo ricorrere all’ allocazione dinamica, ricordandoci di allocare e deallocare opportunamente la memoria.
Stesso discorso valeva per le liste linkate( o liste a puntatori), che dovevamo inoltre anche implementare da soli.
Fortunatamente il linguaggio C ++ ci viene incontro, offrendoci in automatico le implementazioni delle due classi speciali vector e list.
Un oggetto vector memorizza gli elementi che ne fanno parte in posizioni di memoria contigue.
Un oggetto list memorizza gli elementi che ne fanno parte in posizioni di memoria non contigue strutturando una lista doppiamente linkata.
Nel linguaggio C ++ per questo motivo vector e le list differiscono enormente nelle operazioni di inserimento e di cancellazione.
Entrambe le operazioni in una list sono molto più efficienti rispetto ad un vector perché per inserire un elemento all ' inizio, alla fine o al centro si scambiano solo un paio di puntatori, mentre nel vettore occorre operare una serie di shift.

Linguaggio C ++: peculiarità – le classi vector e list

Quando abbiamo utilizzato il linguaggio C ed avevamo bisogno di di un array con lunghezza variabile dovevamo ricorrere all’ allocazione dinamica, ricordandoci di allocare e deallocare opportunamente la memoria.

Stesso discorso valeva per le liste linkate( o liste a puntatori), che dovevamo inoltre anche implementare da soli.

Fortunatamente il linguaggio C ++ ci viene incontro, offrendoci in automatico le implementazioni delle due classi speciali vector e list.

Un oggetto vector memorizza gli elementi che ne fanno parte in posizioni di memoria contigue.

Un oggetto list memorizza gli elementi che ne fanno parte in posizioni di memoria non contigue strutturando una lista doppiamente linkata.

Nel linguaggio C ++ per questo motivo vector e le list differiscono enormente nelle operazioni di inserimento e di cancellazione.

Entrambe le operazioni in una list sono molto più efficienti rispetto ad un vector perché per inserire un elemento all ' inizio, alla fine o al centro si scambiano solo un paio di puntatori, mentre nel vettore occorre operare una serie di shift.

Autore: Prof. Rio Chierego Aprile 2025