prof. Nunzio Brugaletta
C++: programmazione e oggetti

EnneBi - Programmazione
Avanti - Indietro - Inizio

Introduzione a classi e oggetti: i vettori

L'array è la prima struttura di dati trattata in Informatica. Si parla di struttura dati quando ci si riferisce ad un insieme di dati organizzati secondo una determinata legge. Una struttura dati è un insieme dove, come nell'eccezione matematica del termine, è definita una legge di appartenenza e sui quali elementi possono essere svolte determinate operazioni: creazione della struttura, inserimento/eliminazione di un elemento, ricerca di un elemento, estrazione di un sottoinsieme.

L'array è la struttura dati più comunemente usata ed è quella che sta a fondamento di quasi tutte le altre.

Un array è un insieme di variabili dello stesso tipo cui è possibile accedere tramite un nome comune e referenziare uno specifico elemento tramite un indice.

Si può pensare all’array come ad un insieme di cassetti numerati: per poter accedere al contenuto di un cassetto deve essere specificato il numero ad esso associato (l’indice) che indica la posizione relativa dell'elemento, rispetto al punto iniziale della struttura. Il primo elemento del vettore ha indice 0.

vettore

Nelle variabili semplici per accedere al valore contenuto in esse è necessario specificare il nome ed, inoltre, una variabile che dovrà conservare un valore diverso avrà un nome diverso. Nell’array esiste un nome che però stavolta identifica l’array come struttura (il nome farà riferimento all’insieme dei cassetti dell’esempio precedente: questo concetto sarà chiarito meglio più avanti). I singoli elementi dell’array verranno referenziati specificando la loro posizione relativa all’interno della struttura (l’indice): l’elemento a cui ci si riferisce dipende dal valore assunto dall’indice.

Gli elementi dell'array vengono allocati in posizioni di memoria adiacenti. In Informatica una allocazione in memoria centrale per byte consecutivi, viene chiamata vettore.

Il diverso tipo di dichiarazione nelle variabili di tipo elementare, come si è già fatto notare, comporta un diverso modo di svolgere le operazioni fra i dati in esse contenute. Nel caso di un vettore, essendo questa una struttura complessa costituita da un gruppo di variabili, si possono distinguere due livelli:

C++, nel caso di strutture (insiemi di dati) complesse, mette a disposizione un meccanismo (classi) che consente, una volta dichiarato un oggetto di quel tipo, all'oggetto stesso, di possedere dei comportamenti tipici di tutti gli oggetti della stessa famiglia.

La definizione di vettore è contenuta nella libreria vector che quindi va inclusa nel programma tutte le volte che si ha necessità di definire una variabile di tipo vettore. La libreria fa parte di quelle che vengono definite STL (Standard Template Library).

Le differenze sostanziali fra la dichiarazione di una variabile di tipo elementare, per esempio una variabile di tipo int, e un oggetto, per esempio, della classe vector si possono sintetizzare:

I metodi più comuni che verranno utilizzati negli esempi di questi appunti sono sintetizzati nella tabella:

Metodo (classe vector)

Comportamento

empty()

Restituisce un valore booleano (true o false) indicante se il vettore è vuoto o contiene almeno un elemento

size()

Restituisce la quantità di elementi contenuti nel vettore

begin()

Restituisce la posizione in memoria del primo elemento del vettore

at()

Permette di accedere all'elemento del vettore che si trova in una certa posizione. È necessario specificare l'indice come numero intero dentro le parentesi (parametro).

push_back()

Permette di inserire, in coda nel vettore, un nuovo elemento. L'elemento va specificato come parametro fra parentesi e deve essere del tipo previsto nella dichiarazione del vettore

insert()

Permette l'inserimento di un elemento in una posizione qualsiasi del vettore. Fra parentesi vanno specificati due parametri separati dalla virgola: la posizione di inserimento, l'elemento da inserire

erase()

Permette l'eliminazione dalla struttura di un elemento la cui posizione va specificata come parametro



Avanti - Indietro - Inizio

http://ennebi.solira.org
ennebi@solira.org