Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C++-matrices

C++-arrays

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

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 allemaal opslaan. In plaats van 27 afzonderlijke variabelen te maken, kunnen we eenvoudig een array maken:

double grade[27];

Hier, cijfer is een array die maximaal 27 elementen van double . kan bevatten typ.

In C++ kunnen de grootte en het type arrays niet worden gewijzigd nadat ze zijn gedeclareerd.


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 hebben toegang tot elementen van een array door die indices te gebruiken.

// syntax to access array elements
array[index];

Beschouw de array x we hebben hierboven gezien.

Enkele dingen om te onthouden:

  • De array-indexen beginnen met 0 . Betekenis x[0] is het eerste element opgeslagen in index 0 .
  • Als de grootte van een array n is , het laatste element wordt opgeslagen op index (n-1) . In dit voorbeeld, x[5] is het laatste element.
  • Elementen van een array hebben opeenvolgende adressen. Stel bijvoorbeeld dat het startadres van x[0] is 2120d. Dan het adres van het volgende element x[1] wordt 2124d, het adres van x[2] wordt 2128d enzovoort.

    Hier wordt de grootte van elk element met 4 verhoogd. Dit komt omdat de grootte van int is 4 bytes.

C++-array-initialisatie

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

// declare and initialize and array
int x[6] = {19, 10, 8, 17, 9, 15};

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 , we kunnen maximaal n . opslaan aantal elementen in de array. Wat gebeurt er echter als we minder dan n . opslaan? aantal elementen.

Bijvoorbeeld,

// store only 3 elements in the array
int x[6] = {19, 10, 8};

Hier, de array x heeft 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 overige plaatsen. Vaak is deze willekeurige waarde gewoon 0 .


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[0];

// print ith element of the array
cout >> mark[i-1];

Voorbeeld 1:Array-elementen weergeven

#include <iostream>
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 << "\nThe numbers are: ";

    //  Printing array elements
    // using traditional for loop
    for (int i = 0; i < 5; ++i) {
        cout << numbers[i] << "  ";
    }

    return 0;
}

Uitvoer

The numbers are: 7  5  6  12  35
The numbers are: 7  5  6  12  35

Hier hebben we een for . gebruikt lus om te herhalen vanaf i = 0 tot i = 4 . In elke iteratie hebben we numbers[i] . afgedrukt .

We gebruikten opnieuw een op een bereik gebaseerde for-lus om de elementen van de array af te drukken. Voor meer informatie over deze lus, check C++ Ranged for Loop.

Opmerking: In onze op het assortiment gebaseerde lus hebben we de code const int &n . gebruikt in plaats van int n als de bereikdeclaratie. Echter, de const int &n heeft meer de voorkeur omdat:

  1. Gebruik int n kopieert eenvoudig de array-elementen naar de variabele n tijdens elke iteratie. Dit is niet geheugenbesparend.

    &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 geheugenbesparend.
  2. We zijn gewoon de array-elementen aan het afdrukken, niet aan het wijzigen. Daarom gebruiken we const om niet per ongeluk de waarden van de array te veranderen.

Voorbeeld 2:invoer van gebruiker opnemen en opslaan in een array

#include <iostream>
using namespace std;

int main() {
    int numbers[5];

    cout << "Enter 5 numbers: " << endl;

    //  store input from user to array
    for (int i = 0; i < 5; ++i) {
        cin >> 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

Nogmaals, we hebben een for . gebruikt lus om te herhalen vanaf i = 0 tot i = 4 . In elke iteratie hebben we input van de gebruiker genomen en deze opgeslagen in numbers[i] .

Daarna gebruikten we nog een for loop om alle array-elementen af ​​te drukken.


Voorbeeld 3:Toon som en gemiddelde van array-elementen met behulp van for Loop

#include <iostream>
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 << "\nTheir Sum = " << sum << endl;

    // find the average
    average = sum / count;
    cout << "Their Average = " << average << endl;

    return 0;
}

Uitvoer

The numbers are: 7  5  6  12  35  27
Their Sum = 92
Their Average = 15.3333

In dit programma:

  1. We hebben een double . geïnitialiseerd array met de naam getallen maar zonder de grootte te specificeren. We hebben ook drie dubbele variabelen sum . gedeclareerd , telling , en gemiddelde .

    Hier, sum =0 en count = 0 .
  2. Vervolgens gebruikten we een bereik op basis van for loop om de array-elementen af ​​te drukken. In elke iteratie van de lus voegen we het huidige array-element toe aan sum .
  3. We verhogen ook de waarde van count door 1 in elke iteratie, zodat we de grootte van de array aan het einde van de for-lus kunnen krijgen.
  4. Na het afdrukken van alle elementen, printen we de som en het gemiddelde van alle getallen. Het gemiddelde van de getallen wordt gegeven door average = sum / count;

Opmerking: We gebruikten een ranged for loop in plaats van een normale for lus.

Een normale for loop vereist dat we het aantal iteraties specificeren, dat wordt gegeven door de grootte van de array.

Maar een ranged for loop vereist dergelijke specificaties niet.


C++-array buiten de grenzen

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

Als we echter proberen toegang te krijgen tot het element met index 10 of meer dan 10, zal dit resulteren in Undefined Behaviour.


C Taal

  1. C#-matrices
  2. C# Multidimensionale array
  3. C# Jagged Array
  4. C++ Type-conversie
  5. C++-operators
  6. C++ Opmerkingen
  7. Array doorgeven aan een functie in C++-programmering
  8. Java-kopieerarrays
  9. Arrays in C++ | Verklaren | Initialiseren | Aanwijzer naar matrixvoorbeelden
  10. C++ Dynamische toewijzing van arrays met voorbeeld
  11. MATLAB - Arrays