C ++ -arrayer (med exempel)

I den här handledningen lär vi oss att arbeta med matriser. Vi lär oss att deklarera, initialisera och komma åt arrayelement i C ++ programmering med hjälp av exempel.

I C ++ är en matris en variabel som kan lagra flera värden av samma typ. Till exempel,

Antag att en klass har 27 elever, och vi måste lagra betyg för dem alla. Istället för att skapa 27 separata variabler kan vi helt enkelt skapa en matris:

 double grade(27);

Här är betyg en matris som kan innehålla högst 27 element av doubletypen.

I C ++ kan storlek och typ av matriser inte ändras efter dess deklaration.

C ++ Array Deklaration

 dataType arrayName(arraySize);

Till exempel,

 int x(6);

Här,

  • int - typ av element som ska lagras
  • x - arrayens namn
  • 6 - arrayens storlek

Åtkomst till element i C ++ Array

I C ++ är varje element i en matris associerat med ett tal. Numret är känt som ett matrisindex. Vi kan komma åt element i en array genom att använda dessa index.

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

Tänk på arrayen x vi har sett ovan.

Element i en matris i C ++

Få saker att komma ihåg:

  • Arrayindexen börjar med 0. Betydelsen x (0) är det första elementet som lagras i index 0.
  • Om storleken på en matris när lagras det sista elementet i index (n-1). I detta exempel är x (5) det sista elementet.
  • Element i en matris har på varandra följande adresser. Antag till exempel att startadressen x(0)är 2120d. Därefter blir adressen till nästa element x(1)2124d, adressen till x(2)2128d och så vidare.
    Här ökas storleken på varje element med 4. Detta beror på att storleken intär 4 byte.

C ++ Array Initialization

I C ++ är det möjligt att initiera en matris under deklarationen. Till exempel,

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
C ++ Matriselement och deras data

En annan metod för att initiera array under deklaration:

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

Här har vi inte nämnt storleken på matrisen. I sådana fall beräknar kompilatorn automatiskt storleken.

C ++ Array med tomma medlemmar

I C ++, om en matris har en storlek n, kan vi lagra upp till n antal element i matrisen. Vad händer dock om vi lagrar mindre än n antal element.

Till exempel,

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

Här har matrisen x en storlek på 6. Vi har dock initialiserat det med endast 3 element.

I sådana fall tilldelar kompilatorn slumpmässiga värden till de återstående platserna. Ofta är detta slumpmässiga värde helt enkelt 0.

Tomma gruppmedlemmar tilldelas automatiskt värdet 0

Hur infogar och skriver jag ut arrayelement?

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

Exempel 1: Visa arrayelement

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

Produktion

 Siffrorna är: 7 5 6 12 35 Siffrorna är: 7 5 6 12 35

Här har vi använt en forslinga för att iterera från i = 0till i = 4. I varje iteration har vi skrivit ut numbers(i).

Vi använde återigen ett intervall baserat på loop för att skriva ut elementen i arrayen. För att lära dig mer om den här slingan, kontrollera C ++ Ranged for Loop.

Obs! I vår intervallbaserade slinga har vi använt koden const int &nistället för int nsom områdedeklarationen. Emellertid const int &när det mer föredraget eftersom:

  1. Kopierar int nenkelt matriselementen till variabeln n under varje iteration. Detta är inte minneseffektivt.
    & n använder dock array-elementens minnesadress för att komma åt deras data utan att kopiera dem till en ny variabel. Detta är minneseffektivt.
  2. Vi skriver helt enkelt ut arrayelementen och ändrar dem inte. Därför använder vi constför att inte av misstag ändra värdena för matrisen.

Exempel 2: Ta inmatningar från användaren och lagra dem i en matris

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

Produktion

 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 ökar också värdet på räkningen med 1i varje iteration, så att vi kan få storleken på arrayen i slutet av for loop.
  4. Efter att ha skrivit ut alla element skriver vi ut summan och genomsnittet av alla siffror. Genomsnittet av siffrorna ges avaverage = sum / count;

Obs: Vi använde en rangrad forslinga istället för en normal forslinga.

En normal forslinga kräver att vi anger antalet iterationer, vilket ges av storleken på matrisen.

Men en avståndsslinga forkräver inte sådana specifikationer.

C ++ Array Out of Bounds

Om vi ​​deklarerar en matris av storlek 10 kommer matrisen att innehålla element från index 0 till 9.

Men om vi försöker komma åt elementet i index 10 eller mer än 10, kommer det att resultera i odefinierat beteende.

Intressanta artiklar...