C ++ arrays (med eksempler)

I denne opplæringen vil vi lære å jobbe med matriser. Vi lærer å erklære, initialisere og få tilgang til matriseelementer i C ++ programmering ved hjelp av eksempler.

I C ++ er en matrise en variabel som kan lagre flere verdier av samme type. For eksempel,

Anta at en klasse har 27 elever, og vi må lagre karakterene til dem alle. I stedet for å lage 27 separate variabler, kan vi ganske enkelt opprette en matrise:

 double grade(27);

Her er karakter en matrise som kan inneholde maksimalt 27 elementer av doubletypen.

I C ++ kan ikke størrelsen og typen matriser endres etter erklæringen.

C ++ Array Declaration

 dataType arrayName(arraySize);

For eksempel,

 int x(6);

Her,

  • int - type element som skal lagres
  • x - navnet på matrisen
  • 6 - størrelsen på matrisen

Få tilgang til elementer i C ++ Array

I C ++ er hvert element i en matrise assosiert med et tall. Tallet er kjent som en matriseindeks. Vi kan få tilgang til elementer i en matrise ved å bruke disse indeksene.

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

Tenk på matrisen x vi har sett ovenfor.

Elementer i en matrise i C ++

Få ting å huske:

  • Arrayindeksene starter med 0. Betydningen x (0) er det første elementet som er lagret i indeksen 0.
  • Hvis størrelsen på en matrise er n, lagres det siste elementet i indeksen (n-1). I dette eksemplet er x (5) det siste elementet.
  • Elementer i en matrise har påfølgende adresser. Anta for eksempel at startadressen til x(0)er 2120d. Deretter vil adressen til det neste elementet x(1)være 2124d, adressen til x(2)vil være 2128d og så videre.
    Her økes størrelsen på hvert element med 4. Dette skyldes at størrelsen på inter 4 byte.

C ++ Array initialisering

I C ++ er det mulig å initialisere en matrise under erklæringen. For eksempel,

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
C ++ Array-elementer og deres data

En annen metode for å initialisere array under erklæring:

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

Her har vi ikke nevnt størrelsen på matrisen. I slike tilfeller beregner kompilatoren automatisk størrelsen.

C ++ Array med tomme medlemmer

I C ++, hvis en matrise har en størrelse n, kan vi lagre opptil n antall elementer i matrisen. Men hva vil skje hvis vi lagrer mindre enn n antall elementer.

For eksempel,

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

Her har matrisen x en størrelse på 6. Imidlertid har vi initialisert den med bare 3 elementer.

I slike tilfeller tildeler kompilatoren tilfeldige verdier til de gjenværende stedene. Ofte er denne tilfeldige verdien ganske enkelt 0.

Tomme array-medlemmer tildeles automatisk verdien 0

Hvordan setter jeg inn og skriver ut matriseelementer?

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

Eksempel 1: Vis arrayelementer

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

Produksjon

 Tallene er: 7 5 6 12 35 Tallene er: 7 5 6 12 35

Her har vi brukt en forløkke til å gjenta fra i = 0til i = 4. I hver iterasjon har vi skrevet ut numbers(i).

Vi brukte igjen et område basert på loop for å skrive ut elementene i matrisen. For å lære mer om denne sløyfen, sjekk C ++ Ranged for Loop.

Merk: I vår områdebaserte sløyfe har vi brukt koden i const int &nstedet for int nsom områdedeklarasjonen. Imidlertid er det const int &nmer foretrukket fordi:

  1. Ved å bruke int nkopierer du bare matriseelementene til variabelen n under hver iterasjon. Dette er ikke minneeffektivt.
    & n bruker imidlertid minneadressen til matriseelementene for å få tilgang til dataene uten å kopiere dem til en ny variabel. Dette er minneeffektivt.
  2. Vi skriver ganske enkelt ut matriseelementene, og endrer dem ikke. Derfor bruker vi constfor ikke å endre verdiene til matrisen ved et uhell.

Eksempel 2: Ta innspill fra bruker og lagre dem i en matrise

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

Produksjon

 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. Vi øker også tellingsverdien med 1i hver iterasjon, slik at vi kan få størrelsen på matrisen ved slutten av for loop.
  4. Etter å ha skrevet ut alle elementene, skriver vi ut summen og gjennomsnittet av alle tallene. Gjennomsnittet av tallene er gitt avaverage = sum / count;

Merk: Vi brukte en forsløyfe i stedet for en vanlig forsløyfe.

En normal forsløyfe krever at vi spesifiserer antall iterasjoner, gitt av størrelsen på matrisen.

Men en rekkevidde forkrever ikke slike spesifikasjoner.

C ++ Array Out of Bounds

Hvis vi erklærer en matrise med størrelse 10, vil matrisen inneholde elementer fra indeks 0 til 9.

Imidlertid, hvis vi prøver å få tilgang til elementet ved indeks 10 eller mer enn 10, vil det resultere i udefinert atferd.

Interessante artikler...