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 waarde die aan de array wordt toegevoegd, 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
- Soorten arrays
- Eendimensionale array
- Multidimensionale array
- Tweedimensionale array
- Driedimensionale array
- Wijzer naar een array
- Toegang krijgen 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 gemakkelijkere 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 array met één dimensie in C ++.
- Type: het type is het type elementen dat in de array moet worden opgeslagen en het moet een geldig C ++ -gegevenstype zijn.
- Array-naam: de array-naam is de naam die aan de array moet worden toegewezen.
- Array-Size: 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 studenten als volgt opslaan:
int age[5];
In de array age worden 5 gehele getallen opgeslagen 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 uitgevoerd. 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 vermeld binnen de []. Het element 19 bevindt zich 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 binnen {} zijn toegevoegd. Bijvoorbeeld:
int age[] = {19, 18, 21, 20, 17};
De bovenstaande instructie zal exact dezelfde array maken als de vorige. U kunt ook een element aan een array toewijzen met behulp van de bijbehorende index. Bijvoorbeeld:
age[3] = 20;
De bovenstaande instructie slaat de waarde 20 op in index 3 van de array met de naam age. Dit betekent dat 20 de 4 zullen th element van de array.
Soorten arrays
Er zijn twee soorten C ++ - arrays:
- Eendimensionale array
- Multidimensionale array
- Wijzer 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 arraynaam is de naam van de array.
- De grootte is het aantal items dat in de array moet worden opgeslagen.
Bijvoorbeeld:
#includeusing namespace std;int main(){int age[5] = { 19, 18, 21, 20, 17 };for (int x = 0; x < 5; x++){cout < Uitgang:
Hier is een screenshot van de code:
Code Verklaring:
- Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
- Inclusief de std-naamruimte om zijn klassen en functies te gebruiken zonder deze aan te roepen.
- De main () functie aanroepen waarbinnen de logica van het programma moet worden toegevoegd.
- Begin van de hoofdtekst van de functie main ().
- Een array met de naam age declareren om 5 gehele getallen op te slaan. De 5 gehele getallen zijn ook geïnitialiseerd.
- Maak een integer-variabele x met een for-lus.
- Het begin van de body van de for-lus.
- Gebruik de lusvariabele x om de waarden van de array age te herhalen en ze op de console af te drukken. De "\ n" is een teken voor een nieuwe regel en wordt na elke iteratie op een nieuwe regel afgedrukt.
- Einde van de body van de for a loop.
- Einde van de hoofdtekst van de functie main ().
Multidimensionale array
Dit is een array waarin data-items zijn gerangschikt om een array van arrays te vormen. Een meerdimensionale array kan een willekeurig aantal dimensies hebben, maar tweedimensionale en driedimensionale arrays zijn gebruikelijk. Syntaxis:
datatype array-name[d1][d2][d3]… [dn];De arraynaam 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 aangeeft. Dit betekent dat u elk element in een 2D-array identificeert met 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 kunt initialiseren:
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 2x3-matrix. Er zijn 2 rijen en 3 kolommen. Het element 0 kan worden benaderd als een [0] [1] omdat het zich bevindt op de kruising van rij geïndexeerd 0 en kolom geïndexeerd 1. Element 3 kan worden benaderd als een [1] [2] omdat het zich bevindt op de snijpunt 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 kunt initialiseren en doorlopen:
#includeusing namespace std;int main(){// a 2x3 arrayint a[3][2] = { {0, 2}, {1, 4}, {3, 7} };// traverse array elementsfor (int i=0; i<3; i++)for (int j=0; j<2; j++){cout << "a[" < Uitgang:
Hier is een screenshot van de bovenstaande code:
Code Verklaring:
- Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
- Inclusief de std-naamruimte om zijn klassen en functies te gebruiken zonder deze aan te roepen.
- De main () functie aanroepen waarbinnen code moet worden toegevoegd.
- Begin van de hoofdtekst van de functie main ().
- Een reactie. De C ++ - compiler zal dit overslaan.
- Een 2D-array van 3 rijen en 2 kolommen declareren. Er zijn ook items aan de array toegevoegd.
- Een reactie. De C ++ - compiler zal dit overslaan.
- Een variabele maken i met behulp van a voor een lus. Deze variabele herhaalt de rij-indexen van de array.
- Een variabele j maken met a voor een lus. Deze variabele herhaalt de kolomindexen van de array.
- Begin van het lichaam van de lussen.
- Druk de waarden van variabelen i en j op de console af tussen vierkante haken op de console.
- Druk de waarde af die is opgeslagen in index [i] [j] van de array a.
- Einde van het lichaam van de lussen.
- De functie main () zou een geheel getal moeten retourneren als het programma goed werkt.
- 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-loops. Bijvoorbeeld:
#includeusing 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";} Uitgang:
Hier is een screenshot van de code:
Code Verklaring:
- Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
- Inclusief de std-naamruimte om zijn klassen en functies te gebruiken zonder deze aan te roepen.
- De main () functie aanroepen waarbinnen de logica van het programma moet worden toegevoegd.
- Begin van de hoofdtekst van de functie main ().
- Een 3D-array declareren met de naam an van 2x3x2. De waarden van de array zijn ook geïnitialiseerd.
- Toegang krijgen tot het item dat is opgeslagen in index [0] [1] [0] van de array en het afdrukken op de console.
- Toegang krijgen tot het item dat is opgeslagen in index [0] [1] [1] van de array en het afdrukken op de console.
- Einde van de hoofdtekst van de functie main ().
Wijzer naar een array
Een pointer is een variabele die een adres bevat. Behalve dat we een aanwijzer gebruiken 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:
#includeusing namespace std;int main(){int *john;int age[5] = { 19, 18, 21, 20, 17 };john = age;cout << john << "\n";cout << *john;} Uitgang:
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 Verklaring:
- Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
- Inclusief de std-naamruimte om zijn klassen en functies te gebruiken zonder deze aan te roepen.
- De main () functie aanroepen waarbinnen de logica van het programma moet worden toegevoegd.
- Begin van de hoofdtekst van de functie main ().
- Een pointervariabele met de naam * john declareren.
- Declaratie van een integer-array met de naam age om 5 gehele getallen op te slaan. De waarden van de gehele getallen zijn ook geïnitialiseerd.
- De variabele john de waarde toewijzen van het adres van het item dat is opgeslagen in de eerste index van de array age.
- De waarde van variabele john afdrukken, het adres van het item dat is opgeslagen in de eerste index van de array-leeftijd.
- Afdrukken van de eerste waarde die is opgeslagen in de array-leeftijd.
- Einde van de hoofdtekst van de functie main ().
Array-namen kunnen als constante aanwijzers worden gebruikt, en omgekeerd is ook waar. Dit betekent dat u toegang hebt tot de waarde die is opgeslagen in index 3 van array age met * (age + 3). Bijvoorbeeld:
#includeusing namespace std;int main() {// an array of 5 elements.int age[5] = { 19, 18, 21, 20, 17 };int *p;p = age;// output array valuescout << "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;} Uitgang:
Hier is een screenshot van de code:
Code Verklaring:
- Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
- Inclusief de std-naamruimte om zijn klassen en functies te gebruiken zonder deze aan te roepen.
- De functie main () aanroepen en het begin van de hoofdtekst van de functie main ().
- Een reactie. De C ++ - compiler zal dit overslaan.
- Een array met de naam age declareren om 5 gehele getallen op te slaan.
- Een integer pointer maken p.
- Toewijzen aan p de waarde van het adres van het eerste element van array age.
- Een reactie. De C ++ - compiler zal dit overslaan.
- Print wat tekst op de console.
- Maak een geheel getal x met a voor een lus. De {markeert het begin van de body van de for a-lus.
- Print de waarden van x gecombineerd met een andere tekst op de console.
- Druk de waarden van * (p + x) af op de console.
- Einde van de body van de for a loop.
- Print wat tekst op de console.
- Maak een variabele x met a voor een lus. De {markeert het begin van de body van de for-lus.
- Druk de waarden van x van 0 tot 4 af naast een andere tekst.
- Druk de waarden van * (leeftijd + x) af.
- Einde van de body van de for-lus.
- Retourwaarde als het programma met succes wordt uitgevoerd.
- Einde van de hoofdtekst van de functie main ().
Toegang krijgen tot de waarden van een array
De elementen van een array worden benaderd met behulp van hun respectievelijke indexen. De index van het te openen 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 is opgeslagen in index 2 van de array met de naam age. Dit betekent dat de leeftijd van John de 3 e waarde is in de array age. Hier is een compleet C ++ -voorbeeld dat laat zien hoe u deze waarde kunt openen en afdrukken:
#includeusing namespace std;int main(){int age[5] = { 19, 18, 21, 20, 17 };int john = age[2];cout << "The age of John is:"< Uitgang:
Hier is een screenshot van de code:
Code Verklaring:
- Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
- Inclusief de std-naamruimte om zijn klassen en functies te gebruiken zonder deze aan te roepen.
- De main () functie aanroepen waarbinnen code moet worden toegevoegd.
- Begin van een hoofdtekst van de functie main ().
- Een array met de naam age declareren om 5 integer-elementen op te slaan.
- Toegang krijgen tot de waarde die is opgeslagen in index 2 van array age en de waarde ervan opslaan in een variabele met de naam john.
- De waarde van variabele john op de console naast andere tekst afdrukken.
Voordelen van een array in C ++
Hier zijn de voor- / voordelen van het gebruik van Array in C ++:
- Array-elementen kunnen gemakkelijk worden doorlopen.
- Makkelijk om array-gegevens te manipuleren.
- Array-elementen zijn willekeurig toegankelijk.
- Arrays vergemakkelijken code-optimalisatie; daarom kunnen we veel werk doen met minder code.
- Makkelijk om arraygegevens te sorteren.
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 nodig is, 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 vooraf bekend zijn.
Overzicht
- Een array is een gegevensstructuur waarin elementen van hetzelfde gegevenstype worden opgeslagen.
- Array-elementen worden opeenvolgend opgeslagen.
- De array-elementen worden aangeduid met hun respectievelijke indexen. Het eerste element bevindt zich op index 0, terwijl het laatste element zich op index n-1 bevindt, waar het totale aantal array-elementen is.
- De declaratie van een array omvat het definiëren van de gegevenstypen van de arrayelementen en het aantal elementen dat in de array moet worden opgeslagen.
- Een eendimensionale reeks 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 nadat deze is geïnitialiseerd.