C ++ arrays (med eksempler)

I denne vejledning lærer vi at arbejde med arrays. Vi lærer at erklære, initialisere og få adgang til arrayelementer i C ++ programmering ved hjælp af eksempler.

I C ++ er en matrix en variabel, der kan gemme flere værdier af samme type. For eksempel,

Antag, at en klasse har 27 studerende, og vi skal gemme karaktererne for dem alle. I stedet for at oprette 27 separate variabler kan vi simpelthen oprette en matrix:

 double grade(27);

Her er karakter en matrix, der maksimalt kan rumme 27 elementer af doubletypen.

I C ++ kan størrelsen og typen af ​​arrays ikke ændres efter dens erklæring.

C ++ Array Erklæring

 dataType arrayName(arraySize);

For eksempel,

 int x(6);

Her,

  • int - type element, der skal lagres
  • x - arrayets navn
  • 6 - arrayets størrelse

Adgang til elementer i C ++ Array

I C ++ er hvert element i en matrix tilknyttet et tal. Nummeret er kendt som et matrixindeks. Vi kan få adgang til elementer i en matrix ved hjælp af disse indekser.

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

Overvej array x, vi har set ovenfor.

Elementer i en matrix i C ++

Få ting at huske:

  • Arrayindeksene starter med 0. Betydningen x (0) er det første element, der er gemt i indekset 0.
  • Hvis størrelsen på en matrix er n, gemmes det sidste element i indekset (n-1). I dette eksempel er x (5) det sidste element.
  • Elementer i en matrix har på hinanden følgende adresser. Antag for eksempel, at startadressen x(0)er 2120d. Derefter vil adressen på det næste element x(1)være 2124d, adressen på x(2)vil være 2128d og så videre.
    Her øges størrelsen på hvert element med 4. Dette skyldes, at størrelsen på inter 4 byte.

C ++ Array initialisering

I C ++ er det muligt at initialisere en matrix under erklæringen. For eksempel,

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

En anden metode til at initialisere array under erklæring:

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

Her har vi ikke nævnt størrelsen på arrayet. I sådanne tilfælde beregner compileren automatisk størrelsen.

C ++ Array med tomme medlemmer

I C ++, hvis en matrix har en størrelse n, kan vi gemme op til n antal elementer i arrayet. Hvad sker der dog, hvis vi gemmer mindre end n antal elementer.

For eksempel,

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

Her har array x en størrelse på 6. Vi har imidlertid initialiseret det med kun 3 elementer.

I sådanne tilfælde tildeler kompilatoren tilfældige værdier til de resterende steder. Ofte er denne tilfældige værdi simpelthen 0.

Tom array-medlemmer tildeles automatisk værdien 0

Hvordan indsættes og udskrives matrixelementer?

 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: Visning af matrixelementer

 #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

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

Her har vi brugt en forløkke til at gentage fra i = 0til i = 4. I hver iteration har vi udskrevet numbers(i).

We again used a range based for loop to print out the elements of the array. To learn more about this loop, check C++ Ranged for Loop.

Note: In our range based loop, we have used the code const int &n instead of int n as the range declaration. However, the const int &n is more preferred because:

  1. Using int n simply copies the array elements to the variable n during each iteration. This is not memory-efficient.
    &n, however, uses the memory address of the array elements to access their data without copying them to a new variable. This is memory-efficient.
  2. We are simply printing the array elements, not modifying them. Therefore, we use const so as not to accidentally change the values of the array.

Example 2: Take Inputs from User and Store Them in an Array

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

Output

 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 øger også tællingsværdien med 1i hver iteration, så vi kan få størrelsen på arrayet ved slutningen af ​​for loop.
  4. Efter udskrivning af alle elementerne udskriver vi summen og gennemsnittet af alle numrene. Gennemsnittet af tallene er givet vedaverage = sum / count;

Bemærk: Vi brugte en rækkevidde i forstedet for en normal forløkke.

En normal forsløjfe kræver, at vi angiver antallet af iterationer, der er givet af arrayets størrelse.

Men en rækkevidde forkræver ikke sådanne specifikationer.

C ++ Array uden for grænserne

Hvis vi erklærer en matrix af størrelse 10, vil matrixen indeholde elementer fra indeks 0 til 9.

Men hvis vi forsøger at få adgang til elementet ved indeks 10 eller mere end 10, vil det resultere i udefineret adfærd.

Interessante artikler...