Polja C ++ (z primeri)

V tej vadnici se bomo naučili delati z nizi. S pomočjo primerov se bomo naučili prijavljati, inicializirati in dostopati do elementov matrike v programiranju na C ++.

V jeziku C ++ je polje spremenljivka, ki lahko shrani več vrednosti istega tipa. Na primer

Recimo, da ima razred 27 učencev in moramo shraniti ocene vseh. Namesto da ustvarimo 27 ločenih spremenljivk, lahko preprosto ustvarimo matriko:

 double grade(27);

Tu je ocena matrika, ki lahko vsebuje največ 27 elementov doubletipa.

V C ++ po deklaraciji ni mogoče spremeniti velikosti in vrste polj.

Izjava o matriki C ++

 dataType arrayName(arraySize);

Na primer

 int x(6);

Tukaj,

  • int - vrsta elementa za shranjevanje
  • x - ime matrike
  • 6 - velikost polja

Dostopajte do elementov v matriki C ++

V jeziku C ++ je vsak element v matriki povezan s številom. Številka je znana kot indeks matrike. Z uporabo teh indeksov lahko dostopamo do elementov polja.

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

Upoštevajte matriko x, ki smo jo videli zgoraj.

Elementi matrike v jeziku C ++

Nekaj ​​stvari, ki si jih je treba zapomniti:

  • Indeksi nizov se začnejo z 0. Pomen x (0) je prvi element, shranjen v indeksu 0.
  • Če je velikost matrike n, je zadnji element shranjen v indeksu (n-1). V tem primeru je x (5) zadnji element.
  • Elementi polja imajo zaporedne naslove. Denimo, da je začetni naslov x(0)2120d. Nato bo naslov naslednjega elementa x(1)2124d, naslov x(2)2128d in tako naprej.
    Tu se velikost vsakega elementa poveča za 4. To je zato, ker je velikost int4 bajtov.

Inicializacija matrike C ++

V jeziku C ++ je mogoče matriko inicializirati med deklaracijo. Na primer

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
Elementi matrike C ++ in njihovi podatki

Druga metoda za inicializacijo matrike med deklaracijo:

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

Tu nismo omenili velikosti polja. V takih primerih prevajalnik samodejno izračuna velikost.

Polje C ++ s praznimi člani

Če ima matrika velikost v C ++, nlahko v njo shranimo do n elementov. Kaj pa se bo zgodilo, če shranimo manj kot n števila elementov.

Na primer

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

Tu je polje x velikost 6. Vendar smo ga inicializirali s samo 3 elementi.

V takih primerih prevajalnik preostalim mestom dodeli naključne vrednosti. Pogosto je ta naključna vrednost preprosto 0.

Praznim članom matrike se samodejno dodeli vrednost 0

Kako vstaviti in natisniti elemente matrike?

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

Primer 1: Prikaz elementov matrike

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

Izhod

 Številke so: 7 5 6 12 35 Številke so: 7 5 6 12 35

Tu smo uporabili forzanko za ponovitev od i = 0do i = 4. V vsaki ponovitvi smo natisnili numbers(i).

Za izpis elementov polja smo spet uporabili obseg, ki temelji na zanki. Če želite izvedeti več o tej zanki, preverite C ++ Ranged for Loop.

Opomba: V naši zanki, ki temelji na obsegu, smo uporabili kodo const int &nnamesto int nkot izjavo obsega. Vendar const int &nje bolj zaželena, ker:

  1. Uporaba int npreprosto kopira elemente polja v spremenljivko n med vsako ponovitvijo. To ni pomnilniško učinkovito.
    & n pa za dostop do njihovih podatkov uporablja pomnilniški naslov elementov polja, ne da bi jih kopiral v novo spremenljivko. To je pomnilniško učinkovito.
  2. Preprosto tiskamo elemente polja in jih ne spreminjamo. Zato uporabljamo, constda ne bi pomotoma spremenili vrednosti polja.

2. primer: Vzemite vnose uporabnika in jih shranite v matriko

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

Izhod

 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. V 1vsaki ponovitvi povečamo tudi vrednost count tako, da lahko dobimo velikost polja do konca zanke for.
  4. Po tiskanju vseh elementov natisnemo vsoto in povprečje vseh števil. Povprečje števil je podano zaverage = sum / count;

Opomba:for Namesto običajne forzanke smo uporabili obsežno zanko.

Običajna forzanka zahteva, da določimo število ponovitev, ki je določeno z velikostjo polja.

Toda forzanka z obsegom ne zahteva takšnih specifikacij.

Matrika C ++ zunaj meja

Če razglasimo polje velikosti 10, bo polje vsebovalo elemente od indeksa 0 do 9.

Če pa poskusimo dostopiti do elementa z indeksom 10 ali več kot 10, bo to povzročilo nedefinirano vedenje.

Zanimive Članki...