Matrice C ++ (cu exemple)

În acest tutorial, vom învăța să lucrăm cu tablouri. Vom învăța să declarăm, să inițializăm și să accesăm elemente de matrice în programarea C ++ cu ajutorul unor exemple.

În C ++, o matrice este o variabilă care poate stoca mai multe valori de același tip. De exemplu,

Să presupunem că o clasă are 27 de studenți și că trebuie să păstrăm notele tuturor. În loc să creăm 27 de variabile separate, putem crea pur și simplu o matrice:

 double grade(27);

Aici, nota este o matrice care poate conține maximum 27 de elemente de doubletip.

În C ++, dimensiunea și tipul matricelor nu pot fi modificate după declararea sa.

Declarație de matrice C ++

 dataType arrayName(arraySize);

De exemplu,

 int x(6);

Aici,

  • int - tipul de element de stocat
  • x - numele matricei
  • 6 - dimensiunea matricei

Elemente de acces în matrice C ++

În C ++, fiecare element dintr-o matrice este asociat cu un număr. Numărul este cunoscut sub numele de index de matrice. Putem accesa elemente ale unei matrice utilizând acești indici.

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

Luați în considerare matricea x pe care am văzut-o mai sus.

Elemente ale unui tablou în C ++

Câteva lucruri de reținut:

  • Indicii matrice încep cu 0. Înțelesul x (0) este primul element stocat la index 0.
  • Dacă dimensiunea unui tablou este n, ultimul element este stocat la index (n-1). În acest exemplu, x (5) este ultimul element.
  • Elementele unui tablou au adrese consecutive. De exemplu, să presupunem că adresa de pornire a x(0)este 2120d. Apoi, adresa următorului element x(1)va fi 2124d, adresa lui x(2)va fi 2128d și așa mai departe.
    Aici, dimensiunea fiecărui element este mărită cu 4. Acest lucru se datorează faptului că dimensiunea lui inteste de 4 octeți.

Inițializarea matricei C ++

În C ++, este posibilă inițializarea unui tablou în timpul declarației. De exemplu,

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
C ++ Elemente de matrice și datele acestora

O altă metodă de inițializare a matricei în timpul declarației:

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

Aici nu am menționat dimensiunea matricei. În astfel de cazuri, compilatorul calculează automat dimensiunea.

Matrice C ++ cu membri goali

În C ++, dacă o matrice are o dimensiune n, putem stoca până la n număr de elemente în matrice. Cu toate acestea, ce se va întâmpla dacă stocăm mai puțin de n număr de elemente.

De exemplu,

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

Aici, matricea x are o dimensiune de 6. Cu toate acestea, am inițializat-o cu doar 3 elemente.

În astfel de cazuri, compilatorul atribuie valori aleatorii locurilor rămase. Adesea, această valoare aleatorie este pur și simplu 0.

Membrii matricei goale primesc automat valoarea 0

Cum se inserează și se tipăresc elementele matricei?

 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);

Exemplul 1: Afișarea elementelor matrice

 #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; )

Ieșire

 Numerele sunt: ​​7 5 6 12 35 Numerele sunt: ​​7 5 6 12 35

Aici, am folosit o forbuclă pentru a itera de i = 0la i = 4. În fiecare iterație, am imprimat numbers(i).

Am folosit din nou o gamă bazată pe buclă pentru a imprima elementele matricei. Pentru a afla mai multe despre această buclă, verificați C ++ Ranged pentru Buclă.

Notă: În bucla noastră bazată pe interval, am folosit codul const int &nîn loc de int ndeclarație de interval. Cu toate acestea, const int &neste mai preferat deoarece:

  1. Folosind int npur și simplu copiază elementele matricei variabilei n în timpul fiecărei iterații. Acest lucru nu este eficient din punct de vedere al memoriei.
    & n, cu toate acestea, folosește adresa de memorie a elementelor matricei pentru a accesa datele lor fără a le copia într-o nouă variabilă. Aceasta este eficientă din punct de vedere al memoriei.
  2. Pur și simplu tipărim elementele matricei, nu le modificăm. Prin urmare, folosim constpentru a nu modifica accidental valorile matricei.

Exemplul 2: preluați intrări de la utilizator și păstrați-le într-o matrice

 #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; )

Ieșire

 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. De asemenea, creștem valoarea numărării cu 1în fiecare iterație, astfel încât să putem obține dimensiunea matricei până la sfârșitul buclei for.
  4. După tipărirea tuturor elementelor, imprimăm suma și media tuturor numerelor. Media numerelor este dată deaverage = sum / count;

Notă: Am folosit o forbuclă la distanță în loc de o forbuclă normală .

O forbuclă normală ne cere să specificăm numărul de iterații, care este dat de dimensiunea matricei.

Dar o forbuclă la distanță nu necesită astfel de specificații.

C ++ Array Out of Bounds

Dacă declarăm o matrice de dimensiunea 10, atunci matricea va conține elemente de la indexul 0 la 9.

Cu toate acestea, dacă încercăm să accesăm elementul la indexul 10 sau mai mult de 10, va rezulta un Comportament nedefinit.

Articole interesante...