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 double
typen.
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.
![](https://cdn.wiki-base.com/7012201/c_arrays_with_examples.png.webp)
Få saker att komma ihåg:
- Arrayindexen börjar med
0
. Betydelsen x (0) är det första elementet som lagras i index0
. - 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 elementx(1)
2124d, adressen tillx(2)
2128d och så vidare.
Här ökas storleken på varje element med 4. Detta beror på att storlekenint
ä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);
![](https://cdn.wiki-base.com/7012201/c_arrays_with_examples_2.png.webp)
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
.
![](https://cdn.wiki-base.com/7012201/c_arrays_with_examples_3.png.webp)
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 for
slinga för att iterera från i = 0
till 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 &n
istället för int n
som områdedeklarationen. Emellertid const int &n
är det mer föredraget eftersom:
- Kopierar
int n
enkelt 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. - Vi skriver helt enkelt ut arrayelementen och ändrar dem inte. Därför använder vi
const
fö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:
- 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
andcount = 0
. - 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. - Vi ökar också värdet på räkningen med
1
i varje iteration, så att vi kan få storleken på arrayen i slutet av for loop. - Efter att ha skrivit ut alla element skriver vi ut summan och genomsnittet av alla siffror. Genomsnittet av siffrorna ges av
average = sum / count;
Obs: Vi använde en rangrad for
slinga istället för en normal for
slinga.
En normal for
slinga kräver att vi anger antalet iterationer, vilket ges av storleken på matrisen.
Men en avståndsslinga for
krä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.