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

Arrays in C++ | Verklaren | Initialiseren | Aanwijzer naar matrixvoorbeelden

Wat is een array?

Een array is een gegevensstructuur waarin een element van hetzelfde gegevenstype opeenvolgend wordt opgeslagen. Een C++-array heeft een vaste grootte.

U kunt een array zien als een verzameling variabelen van een vergelijkbaar gegevenstype. In plaats van elke variabele te declareren en er afzonderlijk een waarde aan toe te kennen, kunt u één variabele (de array) declareren en de waarden van de verschillende variabelen eraan toevoegen. Elke toegevoegde waarde aan de array wordt geïdentificeerd door een index.

In deze C++ tutorial leer je:

  • Wat is een array?
  • Waarom hebben we arrays nodig?
  • Declareer een array in C++
  • Array-initialisatie
  • Typen arrays
  • Eendimensionale array
  • Multidimensionale matrix
  • Tweedimensionale array
  • Drie-dimensionale array
  • Aanwijzer naar een array
  • Toegang tot de waarden van een array
  • Voordelen van een array in C++
  • Nadelen van een array in C++

Waarom hebben we arrays nodig?

Arrays zijn erg belangrijk in elke programmeertaal. Ze bieden een handiger manier om variabelen of een verzameling gegevens van een vergelijkbaar gegevenstype samen op te slaan in plaats van ze afzonderlijk op te slaan. Elke waarde van de array wordt afzonderlijk benaderd.

Declareer een array in C++

Array-declaratie in C++ omvat het vermelden van het type en het aantal elementen dat door de array moet worden opgeslagen. Syntaxis:

type array-Name [ array-Size ];

Regels voor het declareren van een eendimensionale array in C++.

  • Type: Het type is het type elementen dat in de array moet worden opgeslagen en het moet een geldig C++-gegevenstype zijn.
  • Arraynaam: De array-Name is de naam die aan de array moet worden toegewezen.
  • Array-grootte: De array-Size is het aantal elementen dat in de array moet worden opgeslagen. Het moet een geheel getal zijn en groter dan 0.

U kunt bijvoorbeeld een array met de naam leeftijd maken en de leeftijden van 5 leerlingen als volgt opslaan:

int age[5];

De array-leeftijd zal 5 gehele getallen opslaan die de leeftijden van verschillende studenten vertegenwoordigen.

Array-initialisatie

Array-initialisatie is het proces van het toewijzen/opslaan van elementen aan een array. De initialisatie kan in een enkele instructie of een voor een worden gedaan. Merk op dat het eerste element in een array wordt opgeslagen op index 0, terwijl het laatste element wordt opgeslagen op index n-1, waarbij n het totale aantal elementen in de array is.

In het geval van de age-array wordt het eerste element opgeslagen op index 0, terwijl het laatste element wordt opgeslagen op index 4.

Laten we de age-array gebruiken om te demonstreren hoe array-initialisatie kan worden uitgevoerd:

int age[5] = {19, 18, 21, 20, 17};

Het totale aantal elementen binnen de { } mag niet groter zijn dan de waarde die binnen de [ ] staat. Het element 19 is op index 0, 18 op index 1, 21 op index 2, 20 op index 3 en 17 op index 4. Als u niet het aantal elementen opgeeft dat in de array moet worden opgeslagen binnen [ ], wordt de array zal alleen groot genoeg zijn om de elementen te bevatten die zijn toegevoegd binnen { }. Bijvoorbeeld:

int age[] = {19, 18, 21, 20, 17};

De bovenstaande instructie maakt exact dezelfde array als de vorige. U kunt ook een element aan een array toewijzen met behulp van de index. Bijvoorbeeld:

age[3] = 20;

De bovenstaande instructie zal de waarde 20 opslaan op index 3 van de array met de naam age. Dit betekent dat 20 de 4 e . zal zijn element van de array.

Typen arrays

Er zijn twee soorten C++-arrays:

  • Eendimensionale matrix
  • Multidimensionale matrix
  • Aanwijzer naar een array

Eendimensionale array

Dit is een array waarin de gegevensitems lineair in slechts één dimensie zijn gerangschikt. Het wordt gewoonlijk een 1-D-array genoemd. Syntaxis:

datatype array-name[size];
  • De array-naam is de naam van de array.
  • De grootte is het aantal items dat in de array moet worden opgeslagen.

Bijvoorbeeld:

#include <iostream>
using namespace std;

int main()
{
	int age[5] = { 19, 18, 21, 20, 17 };
	for (int x = 0; x < 5; x++)
	{
		cout <<age[x]<<"\n";
	}
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Inclusief de std-naamruimte om de klassen en functies te gebruiken zonder deze aan te roepen.
  3. De functie main() aanroepen waarbinnen de logica van het programma moet worden toegevoegd.
  4. Begin van de hoofdtekst van de functie main().
  5. Een array met de naam age declareren om 5 gehele getallen op te slaan. De 5 gehele getallen zijn ook geïnitialiseerd.
  6. Maak een integer-variabele x met een for-lus.
  7. Het begin van de hoofdtekst van de for-lus.
  8. De lusvariabele x gebruiken om de waarden van de array-leeftijd te herhalen en ze op de console af te drukken. De "\n" is een teken voor een nieuwe regel en wordt na elke iteratie in een nieuwe regel afgedrukt.
  9. Einde van de hoofdtekst van de for a-lus.
  10. Einde van de hoofdtekst van de functie main().

Multidimensionale matrix

Dit is een array waarin gegevensitems zijn gerangschikt om een ​​array van arrays te vormen. Een multidimensionale array kan een willekeurig aantal dimensies hebben, maar tweedimensionale en driedimensionale arrays komen vaak voor. Syntaxis:

datatype array-name[d1][d2][d3]...[dn];

De array-naam is de naam van de array die n dimensies zal hebben. Bijvoorbeeld:

Tweedimensionale array

Een 2D-array slaat gegevens op in een lijst met 1-D-array. Het is een matrix met rijen en kolommen. Gebruik de volgende syntaxis om een ​​2D-array te declareren:

type array-Name [ x ][ y ];

Het type moet een geldig C++-gegevenstype zijn. Zie een 2D-array als een tabel, waarbij x het aantal rijen aangeeft en y het aantal kolommen. Dit betekent dat je elk element in een 2D-array identificeert met behulp van de vorm a[x][y], waarbij x het aantal rijen is en y het aantal kolommen waartoe het element behoort.

Hier is een voorbeeld van hoe u een 2D-array initialiseert:

int a[2][3] = {  
   {0, 2, 1} ,   /*  row at index 0 */
   {4, 3, 7} ,   /*  row at index 1 */
   };

In het bovenstaande voorbeeld hebben we een 2D-array die kan worden gezien als een 2 × 3-matrix. Er zijn 2 rijen en 3 kolommen. Het element 0 is toegankelijk als a[0][1] omdat het zich bevindt op het snijpunt van rij geïndexeerd 0 en kolom geïndexeerd 1. Het element 3 is toegankelijk als a[1][2] omdat het zich bevindt op de kruising van rij geïndexeerd 1 en kolom geïndexeerd 2.

Merk op dat we eenvoudig accolades hebben toegevoegd om de verschillende rijen elementen te onderscheiden. De initialisatie had ook als volgt kunnen gebeuren:

int a[2][3] = {0, 2, 1, 4, 3, 7};
   };

Het volgende C++-voorbeeld laat zien hoe u een 2D-array initialiseert en doorkruist:

#include <iostream>
using namespace std;
int main() 
{
	// a 2x3 array
	int a[3][2] = { {0, 2}, {1, 4}, {3, 7} };

	// traverse array elements

	for (int i=0; i<3; i++)
		for (int j=0; j<2; j++) 
		
		{
			cout << "a[" <<i<< "][" <<j<< "]: ";
			cout << a[i][j] << endl;
		}
	return 0;
}

Uitvoer:

Hier is een screenshot van de bovenstaande code:

Code uitleg:

  1. Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Inclusief de std-naamruimte om de klassen en functies te gebruiken zonder deze aan te roepen.
  3. De functie main() aanroepen waarbinnen code moet worden toegevoegd.
  4. Begin van de hoofdtekst van de functie main().
  5. Een opmerking. De C++-compiler slaat dit over.
  6. Een 2D-array van 3 rijen en 2 kolommen declareren. Er zijn ook items aan de array toegevoegd.
  7. Een opmerking. De C++-compiler slaat dit over.
  8. Een variabele i maken met een for-lus. Deze variabele herhaalt de rij-indexen van de array.
  9. Een variabele j maken met a voor een lus. Deze variabele herhaalt de kolomindexen van de array.
  10. Begin van de body van de lussen.
  11. Druk de waarden van variabelen i en j op de console af tussen vierkante haken op de console.
  12. Druk de waarde af die is opgeslagen in index [i][j] van de array a.
  13. Einde van het lichaam van de lussen.
  14. De functie main() zou een geheel getal moeten retourneren als het programma goed werkt.
  15. Einde van de hoofdtekst van de functie main().

Driedimensionale array

Een 3D-array is een array van arrays. Elk element in een 3D-array wordt geïdentificeerd door een set van 3 indexen. Om toegang te krijgen tot de elementen van een 3D-array, gebruiken we drie for-lussen. Bijvoorbeeld:

#include<iostream>
using namespace std;
void main()
{
	int a[2][3][2] = {{{4, 8},{2, 4},{1, 6}}, {{3, 6},{5, 4},{9, 3}}};
	cout << "a[0][1][0] = " << a[0][1][0] << "\n";
	cout << "a[0][1][1] = " << a[0][1][1] << "\n";
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Inclusief de std-naamruimte om de klassen en functies te gebruiken zonder deze aan te roepen.
  3. De functie main() aanroepen waarbinnen de logica van het programma moet worden toegevoegd.
  4. Begin van de hoofdtekst van de functie main().
  5. Het declareren van een 3D-array met de naam a van de grootte 2x3x2. De waarden van de array zijn ook geïnitialiseerd.
  6. Toegang tot het item opgeslagen in index [0][1][0] van de array en afdrukken op de console.
  7. Toegang tot het item opgeslagen in index [0][1][1] van de array en afdrukken op de console.
  8. Einde van de hoofdtekst van de functie main().

Aanwijzer naar een array

Een pointer is een variabele die een adres bevat. Behalve het gebruik van een aanwijzer om het adres van een variabele op te slaan, kunnen we deze ook gebruiken om het adres van een matrixcel op te slaan. De naam van een array verwijst constant naar het eerste element. Beschouw de onderstaande verklaring:

int age[5];

De leeftijd is een verwijzing naar $age[0], het adres van het eerste element van een array met de naam age. Beschouw het volgende voorbeeld:

#include <iostream>
using namespace std;
int main()
{
	int *john;

	int age[5] = { 19, 18, 21, 20, 17 };

	john = age;

	cout << john << "\n";

	cout << *john;
	
}

Uitvoer:

Merk op dat de eerste waarde van de bovenstaande uitvoer een andere waarde kan retourneren, afhankelijk van het adres dat is toegewezen aan het eerste element van de array in het geheugen van uw computer.

Hier is een screenshot van de code:

Code uitleg:

  1. Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Inclusief de std-naamruimte om de klassen en functies te gebruiken zonder deze aan te roepen.
  3. De functie main() aanroepen waarbinnen de logica van het programma moet worden toegevoegd.
  4. Begin van de hoofdtekst van de functie main().
  5. Het declareren van een pointervariabele met de naam *john.
  6. Een integerarray met de naam age declareren om 5 integers op te slaan. De waarden van de gehele getallen zijn ook geïnitialiseerd.
  7. De variabele john de waarde toewijzen van het adres van het item dat is opgeslagen in de eerste index van de array-leeftijd.
  8. De waarde van de variabele john afdrukken, het adres van het item dat is opgeslagen in de eerste index van de array-leeftijd.
  9. De eerste waarde afdrukken die is opgeslagen in de array-leeftijd.
  10. Einde van de hoofdtekst van de functie main().

Arraynamen kunnen worden gebruikt als constante pointers, en omgekeerd is dat ook waar. Dit betekent dat u toegang hebt tot de waarde die is opgeslagen in index 3 van array age met *(age + 3). Bijvoorbeeld:

#include <iostream>
using namespace std;

int main() {
	// an array of 5 elements.
	int age[5] = { 19, 18, 21, 20, 17 };
	int *p;

	p = age;

	// output array values

	cout << "Using pointer: " << endl;

	for (int x=0; x<5; x++) {
		cout << "*(p + " << x << ") : ";
		cout << *(p + x) << endl;
	}
	cout << "Using age as address: " << endl;

	for (int x = 0; x < 5; x++) {
		cout << "*(age + " << x << ") : ";
		cout << *(age + x) << endl;
	}

	return 0;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Inclusief de std-naamruimte om de klassen en functies te gebruiken zonder deze aan te roepen.
  3. De functie main() en het begin van de hoofdtekst van de functie main() aanroepen.
  4. Een opmerking. De C++-compiler slaat dit over.
  5. Een array met de naam age declareren om 5 gehele getallen op te slaan.
  6. Een integer-pointer maken p.
  7. P de waarde toewijzen van het adres van het eerste element van array age.
  8. Een opmerking. De C++-compiler slaat dit over.
  9. Druk wat tekst af op de console.
  10. Maak een geheel getal x met een for een lus. De { markeert het begin van de body van de for a-lus.
  11. Druk de waarden van x af in combinatie met wat andere tekst op de console.
  12. Druk de waarden van *(p + x) af op de console.
  13. Einde van de body van de for a-lus.
  14. Druk wat tekst af op de console.
  15. Maak een variabele x met een for a lus. De { markeert het begin van de hoofdtekst van de for-lus.
  16. Druk de waarden van x van 0 tot 4 af naast wat andere tekst.
  17. Druk de waarden van *(leeftijd + x) af.
  18. Einde van de body van de for-lus.
  19. Retourwaarde als het programma succesvol wordt uitgevoerd.
  20. Einde van de hoofdtekst van de functie main().

Toegang tot de waarden van een array

De elementen van een array worden benaderd met behulp van hun respectieve indexen. De index van het te benaderen element wordt tussen vierkante haken [ ] direct na de arraynaam toegevoegd. Bijvoorbeeld:

int john = age[2];

In het bovenstaande voorbeeld stellen we eenvoudigweg dat de leeftijd van John wordt opgeslagen op index 2 van de array met de naam age. Dit betekent dat John's leeftijd de 3 de . is waarde in de array-leeftijd. Hier is een compleet C++-voorbeeld dat laat zien hoe u deze waarde kunt openen en afdrukken:

#include<iostream>

using namespace std;

int main()
{

	int age[5] = { 19, 18, 21, 20, 17 };

	int john = age[2];

	cout << "The age of John is:"<<john;
}

Uitgang:

Hier is een screenshot van de code:

Code uitleg:

  1. Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Inclusief de std-naamruimte om de klassen en functies te gebruiken zonder deze aan te roepen.
  3. De functie main() aanroepen waarbinnen code moet worden toegevoegd.
  4. Begin van een hoofdtekst van de functie main().
  5. Een array met de naam age declareren om 5 integer-elementen op te slaan.
  6. Toegang tot de waarde die is opgeslagen in index 2 van array age en de waarde ervan opslaan in een variabele met de naam john.
  7. De waarde van variabele john afdrukken op de console naast andere tekst.

Voordelen van een array in C++

Hier zijn de voordelen/voordelen van het gebruik van Array in C++:

  • Array-elementen kunnen gemakkelijk worden doorlopen.
  • Eenvoudig te manipuleren arraygegevens.
  • Array-elementen zijn willekeurig toegankelijk.
  • Arrays vergemakkelijken code-optimalisatie; daarom kunnen we veel werk doen met minder code.
  • Eenvoudig te sorteren arraygegevens.

Nadelen van een array in C++

  • Een array heeft een vaste grootte; daarom kunnen we er na initialisatie geen nieuwe elementen aan toevoegen.
  • Het toewijzen van meer geheugen dan de vereiste leidt tot verspilling van geheugenruimte, en minder toewijzing van geheugen kan een probleem vormen.
  • Het aantal elementen dat in een array moet worden opgeslagen, moet van tevoren bekend zijn.

Samenvatting

  • Een array is een gegevensstructuur waarin elementen van hetzelfde gegevenstype zijn opgeslagen.
  • Array-elementen worden opeenvolgend opgeslagen.
  • De array-elementen worden aangegeven met hun respectievelijke indexen. Het eerste element heeft index 0, terwijl het laatste element index n-1 is, waar het totale aantal array-elementen is.
  • De declaratie van een array omvat het definiëren van de gegevenstypen van de array-elementen en het aantal elementen dat in de array moet worden opgeslagen.
  • Een eendimensionale array slaat elementen opeenvolgend op.
  • Een tweedimensionale array slaat elementen op in rijen en kolommen.
  • Een driedimensionale array is een array van arrays.
  • Elementen kunnen aan een array worden toegevoegd met behulp van hun indexen.
  • Array-elementen worden benaderd met behulp van hun indexen.
  • Een multidimensionale array heeft meer dan één dimensie.
  • De arraynaam verwijst naar het eerste element.
  • Arrays hebben een vaste grootte, wat betekent dat er geen nieuwe elementen aan de array kunnen worden toegevoegd na initialisatie.

C Taal

  1. C#-matrices
  2. Array doorgeven aan een functie in C++-programmering
  3. Java-kopieerarrays
  4. C++ do...while-lus met voorbeelden
  5. C++ Dynamische toewijzing van arrays met voorbeeld
  6. C++-aanwijzers met voorbeelden
  7. C++ Char-gegevenstype met voorbeelden
  8. Overbelasting van C++-operator met voorbeelden
  9. C++-functies met programmavoorbeelden
  10. C# Collecties Zelfstudie met Voorbeelden
  11. Zelfstudie Java-arrays:declareren, maken, initialiseren [voorbeeld]