C ++ Arrays (met voorbeelden)

In deze tutorial leren we werken met arrays. We zullen met behulp van voorbeelden leren om array-elementen in C ++ - programmeren te declareren, initialiseren en benaderen.

In C ++ is een array een variabele die meerdere waarden van hetzelfde type kan opslaan. Bijvoorbeeld,

Stel dat een klas 27 leerlingen heeft, en we moeten de cijfers van alle leerlingen opslaan. In plaats van 27 afzonderlijke variabelen te maken, kunnen we eenvoudig een array maken:

 double grade(27);

Hier is cijfer een array die maximaal 27 elementen van het doubletype kan bevatten.

In C ++ kunnen de grootte en het type arrays na de declaratie niet worden gewijzigd.

C ++ Array-verklaring

 dataType arrayName(arraySize);

Bijvoorbeeld,

 int x(6);

Hier,

  • int - type element dat moet worden opgeslagen
  • x - naam van de array
  • 6 - grootte van de array

Toegang tot elementen in C ++ Array

In C ++ is elk element in een array gekoppeld aan een getal. Het nummer staat bekend als een array-index. We kunnen toegang krijgen tot elementen van een array door die indices te gebruiken.

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

Beschouw de array x die we hierboven hebben gezien.

Elementen van een array in C ++

Enkele dingen om te onthouden:

  • De array-indices beginnen met 0. Dit betekent dat x (0) het eerste element is dat is opgeslagen bij index 0.
  • Als de grootte van een array is n, wordt het laatste element opgeslagen bij index (n-1). In dit voorbeeld is x (5) het laatste element.
  • Elementen van een array hebben opeenvolgende adressen. Stel dat het startadres van x(0)2120d is. Het adres van het volgende element x(1)is dan 2124d, het adres van x(2)zal 2128d zijn, enzovoort.
    Hier wordt de grootte van elk element vergroot met 4. Dit komt doordat de grootte van int4 bytes is.

Initialisatie van C ++ array

In C ++ is het mogelijk om een ​​array te initialiseren tijdens het declareren. Bijvoorbeeld,

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
C ++ Array-elementen en hun gegevens

Een andere methode om array te initialiseren tijdens declaratie:

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

Hier hebben we de grootte van de array niet genoemd. In dergelijke gevallen berekent de compiler automatisch de grootte.

C ++ Array met lege leden

In C ++, als een array een grootte heeft n, kunnen we een maximaal aantal elementen in de array opslaan. Wat gebeurt er echter als we minder dan n aantal elementen opslaan?

Bijvoorbeeld,

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

Hier heeft de array x een grootte van 6. We hebben het echter geïnitialiseerd met slechts 3 elementen.

In dergelijke gevallen wijst de compiler willekeurige waarden toe aan de resterende plaatsen. Vaak is deze willekeurige waarde eenvoudig 0.

Lege matrixleden krijgen automatisch de waarde 0 toegewezen

Hoe array-elementen invoegen en afdrukken?

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

Voorbeeld 1: array-elementen weergeven

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

Uitvoer

 De nummers zijn: 7 5 6 12 35 De nummers zijn: 7 5 6 12 35

Hier hebben we een forlus gebruikt om van i = 0naar te herhalen i = 4. In elke iteratie hebben we afgedrukt numbers(i).

We hebben opnieuw een op bereik gebaseerde for-lus gebruikt om de elementen van de array af te drukken. Raadpleeg C ++ Ranged for Loop voor meer informatie over deze lus.

Opmerking: in onze op bereik gebaseerde lus hebben we de code gebruikt in const int &nplaats van int nals bereikdeclaratie. Het heeft const int &nechter meer de voorkeur omdat:

  1. Gebruiken int nkopieert eenvoudig de array-elementen naar de variabele n tijdens elke iteratie. Dit is niet geheugenefficiënt.
    & n gebruikt echter het geheugenadres van de array-elementen om toegang te krijgen tot hun gegevens zonder ze naar een nieuwe variabele te kopiëren. Dit is geheugenefficiënt.
  2. We drukken gewoon de array-elementen af, niet wijzigen. Daarom gebruiken we om constniet per ongeluk de waarden van de array te wijzigen.

Voorbeeld 2: neem input van de gebruiker en sla deze op in een 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; )

Uitvoer

 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. We verhogen ook de waarde van count met 1in elke iteratie, zodat we de grootte van de array aan het einde van de for-lus kunnen krijgen.
  4. Nadat we alle elementen hebben geprint, printen we de som en het gemiddelde van alle getallen. Het gemiddelde van de cijfers wordt gegeven dooraverage = sum / count;

Opmerking: we hebben een afstandslus gebruikt in forplaats van een normale forlus.

Een normale forlus vereist dat we het aantal iteraties specificeren, dat wordt bepaald door de grootte van de array.

Maar een afstandslus forvereist dergelijke specificaties niet.

C ++ Array buiten bereik

Als we een array van grootte 10 declareren, bevat de array elementen van index 0 tot 9.

Als we echter proberen toegang te krijgen tot het element op index 10 of hoger dan 10, zal dit resulteren in ongedefinieerd gedrag.

Interessante artikelen...