Matrici C ++ (con esempi)

In questo tutorial impareremo a lavorare con gli array. Impareremo a dichiarare, inizializzare e accedere agli elementi dell'array nella programmazione C ++ con l'aiuto di esempi.

In C ++, un array è una variabile che può memorizzare più valori dello stesso tipo. Per esempio,

Supponiamo che una classe abbia 27 studenti e dobbiamo memorizzare i voti di tutti loro. Invece di creare 27 variabili separate, possiamo semplicemente creare un array:

 double grade(27);

In questo caso, il grado è un array che può contenere un massimo di 27 elementi di doubletipo.

In C ++, la dimensione e il tipo di array non possono essere modificati dopo la sua dichiarazione.

Dichiarazione di matrice C ++

 dataType arrayName(arraySize);

Per esempio,

 int x(6);

Qui,

  • int - tipo di elemento da memorizzare
  • x - nome dell'array
  • 6 - dimensione dell'array

Accedi agli elementi in C ++ Array

In C ++, ogni elemento in un array è associato a un numero. Il numero è noto come indice di matrice. Possiamo accedere agli elementi di un array usando quegli indici.

 // syntax to access array elements array(index);

Considera l'array x che abbiamo visto sopra.

Elementi di un array in C ++

Poche cose da ricordare:

  • Gli indici dell'array iniziano con 0. Significato x (0) è il primo elemento memorizzato in index 0.
  • Se la dimensione di un array è n, l'ultimo elemento viene memorizzato in index (n-1). In questo esempio, x (5) è l'ultimo elemento.
  • Gli elementi di un array hanno indirizzi consecutivi. Ad esempio, supponiamo che l'indirizzo iniziale di x(0)sia 2120d. Quindi, l'indirizzo del prossimo elemento x(1)sarà 2124d, l'indirizzo di x(2)sarà 2128d e così via.
    Qui, la dimensione di ogni elemento viene aumentata di 4. Questo perché la dimensione di intè di 4 byte.

Inizializzazione dell'array C ++

In C ++, è possibile inizializzare un array durante la dichiarazione. Per esempio,

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
Elementi array C ++ e relativi dati

Un altro metodo per inizializzare l'array durante la dichiarazione:

 // declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);

Qui, non abbiamo menzionato la dimensione dell'array. In questi casi, il compilatore calcola automaticamente la dimensione.

Matrice C ++ con membri vuoti

In C ++, se un array ha una dimensione n, possiamo memorizzare fino a n numero di elementi nell'array. Tuttavia, cosa succederà se memorizziamo un numero inferiore a n di elementi.

Per esempio,

 // store only 3 elements in the array int x(6) = (19, 10, 8);

Qui, l'array x ha una dimensione di 6. Tuttavia, l'abbiamo inizializzato con solo 3 elementi.

In questi casi, il compilatore assegna valori casuali alle posizioni rimanenti. Spesso, questo valore casuale è semplicemente 0.

Ai membri della matrice vuota viene assegnato automaticamente il valore 0

Come inserire e stampare gli elementi dell'array?

 int mark(5) = (19, 10, 8, 17, 9) // change 4th element to 9 mark(3) = 9; // take input from the user // store the value at third position cin>> mark(2); // take input from the user // insert at ith position cin>> mark(i-1); // print first element of the array cout <> mark(i-1);

Esempio 1: visualizzazione degli elementi dell'array

 #include using namespace std; int main() ( int numbers(5) = (7, 5, 6, 12, 35); cout << "The numbers are: "; // Printing array elements // using range based for loop for (const int &n : numbers) ( cout << n << " "; ) cout << "The numbers are: "; // Printing array elements // using traditional for loop for (int i = 0; i < 5; ++i) ( cout << numbers(i) << " "; ) return 0; )

Produzione

 I numeri sono: 7 5 6 12 35 I numeri sono: 7 5 6 12 35

Qui, abbiamo usato un forciclo per iterare da i = 0a i = 4. In ogni iterazione, abbiamo stampato numbers(i).

Abbiamo nuovamente utilizzato un ciclo for basato su intervallo per stampare gli elementi dell'array. Per saperne di più su questo ciclo, controlla C ++ Ranged for Loop.

Nota: nel nostro ciclo basato sull'intervallo, abbiamo utilizzato il codice const int &nanziché int ncome dichiarazione dell'intervallo. Tuttavia, const int &nè più preferito perché:

  1. Usando int nsemplicemente copia gli elementi dell'array nella variabile n durante ogni iterazione. Questo non è efficiente in termini di memoria.
    & n, tuttavia, utilizza l'indirizzo di memoria degli elementi dell'array per accedere ai loro dati senza copiarli in una nuova variabile. Questo è efficiente in termini di memoria.
  2. Stiamo semplicemente stampando gli elementi dell'array, non modificandoli. Pertanto, usiamo in constmodo da non modificare accidentalmente i valori dell'array.

Esempio 2: prendere input dall'utente e archiviarli in un array

 #include using namespace std; int main() ( int numbers(5); cout << "Enter 5 numbers: " << endl; // store input from user to array for (int i = 0; i > numbers(i); ) cout << "The numbers are: "; // print array elements for (int n = 0; n < 5; ++n) ( cout << numbers(n) << " "; ) return 0; )

Produzione

 Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15

Once again, we have used a for loop to iterate from i = 0 to i = 4. In each iteration, we took an input from the user and stored it in numbers(i).

Then, we used another for loop to print all the array elements.

Example 3: Display Sum and Average of Array Elements Using for Loop

 #include using namespace std; int main() ( // initialize an array without specifying size double numbers() = (7, 5, 6, 12, 35, 27); double sum = 0; double count = 0; double average; cout << "The numbers are: "; // print array elements // use of range-based for loop for (const double &n : numbers) ( cout << n << " "; // calculate the sum sum += n; // count the no. of array elements ++count; ) // print the sum cout << "Their Sum = " << sum << endl; // find the average average = sum / count; cout << "Their Average = " << average << endl; return 0; )

Output

 The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333

In this program:

  1. We have initialized a double array named numbers but without specifying its size. We also declared three double variables sum, count, and average.
    Here, sum =0 and count = 0.
  2. Then we used a range based for loop to print the array elements. In each iteration of the loop, we add the current array element to sum.
  3. Aumentiamo anche il valore di count by 1in ogni iterazione, in modo da poter ottenere la dimensione dell'array entro la fine del ciclo for.
  4. Dopo aver stampato tutti gli elementi, stampiamo la somma e la media di tutti i numeri. La media dei numeri è data daaverage = sum / count;

Nota: abbiamo utilizzato un forloop con intervallo invece di un forloop normale .

Un forciclo normale richiede di specificare il numero di iterazioni, che è dato dalla dimensione dell'array.

Ma un forloop a distanza non richiede tali specifiche.

C ++ Array Out of Bounds

Se dichiariamo un array di dimensione 10, l'array conterrà elementi dall'indice 0 a 9.

Tuttavia, se proviamo ad accedere all'elemento con indice 10 o più di 10, risulterà in un comportamento indefinito.

Articoli interessanti...