Gli array in C++ sono delle strutture omogenee che contengono elementi dello stesso tipo.

Gli array, detti anche vettori, contengono elementi dello stesso tipo, immagazzinati in locazioni di memoria contigue.

E’ possibile identificare ciascun elemento di un array tramite un indice numerico che parte da zero. Quindi ad esempio per un array di n elementi l’indice parte da 0 ed arriva ad n-1.

Un array è identificato da un nome. Occorre prestare attenzione alla scelta del nome, dando sempre nomi sensati ed evitando le keywords.

Dunque, si accede a ciascun elemento indicando il nome del vettore (array) seguito dalle parentesi quadre dove è racchiuso l’indice. Difatti, considerando un vettore a, se, ad esempio, volessi accedere all’elemento con indice 6 dovrei indicare: a[6].

Dichiarare un array in C++

Quindi vediamo alcuni esempi di come dichiarare un array in C++.

#define N 10
const int M=100

int A[N]; //dichiara ad esempio un array di 10 elementi

float V[10]; //dichiara un array di 10 elementi float

int B[M]; //dichiara un array di 100 elementi

int C={3,5,6,2,1} 
//array di interi con la dimensione definita implicitamente

int D[10]={3,5,6,2,1} 
//array di interi parzialmente inizializzato

int E[10]={3,5,6,2,1,8,4,7,9,0} 
//array di interi totalmente inizializzato

int F[N]={0}; 
//si può anche indicare {} inizializza gli elementi dell'array a zero

Inizializzare un array in C++ con un ciclo for

Supponiamo adesso di voler popolare un array di 11 elementi con i numeri che vanno da 0 a 50 a step di 5. In questo caso ci viene in auto un’istruzione iterativa, un ciclo, che utilizza un indice i per scorrere tutto l’array. L’indice parte da 0 e finchè non arriva a 10, all’interno del ciclo esegue la seguente operatione:

a[i]=i*5;

Cioè, alla prima iterazione, avremo: a[0] = 0*5 = 0.

Alla seconda iterazione, dopo che l’indice i è stato incrementato di 1, avremo: a[1]=1*5=5, e così via fino al numero 50.

Ecco dunque il listato completo dell’esempio di inizializzazione di un array in C++.

#include <iostream>
using namespace std;

#define N 11

int main(){
	int a[N];

	for (int i = 0; i<N; i++){		
		a[i]=i*5;
		cout<<a[i]<<" ";
	}
   return 0;
}

Inizializzazione a zero degli elementi

In questo secondo esempio inizializziamo gli elementi dell’array a zero.

#include <iostream>
using namespace std;

#define N 10

int main(){
	int a[N] = {0}; //si può anche indicare {}

	for (int i = 0; i<N; i++)	
		cout<<a[i]<<" "; //stampiamo i valori per verificare

   return 0;
}

Inizializzazione parziale degli array in C++

In questo esempio i primi 4 elementi avranno valore pari a quelli specificati tra parentesi graffe, mentre i restanti 6 elementi avranno valore pari a zero.

#include <iostream>
using namespace std;

#define N 10

int main(){
	float a[N] = {0.9, 1.3, 2.4, 3.6};

	for (int i=0; i<N; i++)	
		cout<<a[i]<<endl;  //stampiamo i valori per verificare
   return 0;
}

Inizializzazione array di char

Facciamo infine un esempio dove inizializziamo un array di caratteri. In questo caso i primi 5 elementi saranno inizializzati alle prime 5 lettere dell’alfabeto, i restanti 5 caratteri sono i caratteri ‘/0’.

#include <iostream>
using namespace std;
#define N 10


int main(){
	char a[N] = {'a','b','c','d','e'};

	for (int i=0; i<N; i++)	
		cout<<a[i]<<endl;  //stampiamo i valori per verificare

  return 0;
}

Chiaramente questi sono solo dei semplici esempi di utilizzo degli array in C++. Nella prossima lezione ci eserciteremo ancora su questi argomenti e ne proporrò dei nuovi.

Alcuni link utili

Indice argomenti linguaggio C++

Approfondimento vettori in C++

Esercitazione sugli array in C++

Massimo elemento di un vettore

Esercizi con gli array

Ricerca sequenziale in C++

Ricerca in un array ordinato

Array con numeri random

Ricerca binaria