Tässä opetusohjelmassa opimme työskentelemään matriisien kanssa. Opimme julistamaan, alustamaan ja käyttämään taulukkoelementtejä C ++ - ohjelmoinnissa esimerkkien avulla.
C ++: ssa taulukko on muuttuja, joka voi tallentaa useita saman tyyppisiä arvoja. Esimerkiksi,
Oletetaan, että luokassa on 27 oppilasta, ja meidän on tallennettava heidän kaikkien arvosanat. 27 erillisen muuttujan luomisen sijaan voimme yksinkertaisesti luoda taulukon:
double grade(27);
Tässä luokassa on taulukko, johon mahtuu enintään 27 tyyppielementtiä double
.
C ++: ssa matriisien kokoa ja tyyppiä ei voida muuttaa sen ilmoituksen jälkeen.
C ++ -taulukkoilmoitus
dataType arrayName(arraySize);
Esimerkiksi,
int x(6);
Tässä,
int
- tallennettavan elementin tyyppi- x - taulukon nimi
6
- taulukon koko
Käytä elementtejä C ++ -taulukossa
C ++: ssa kukin matriisin elementti liittyy numeroon. Numero tunnetaan taulukkoindeksinä. Pääset matriisin elementteihin käyttämällä näitä indeksejä.
// syntax to access array elements array(index);
Tarkastellaan taulukkoa x, jonka olemme nähneet yllä.

Muutama muistettava asia:
- Taulukkoindeksit alkavat
0
. Merkitys x (0) on ensimmäinen hakemistoon tallennettu elementti0
. - Jos matriisin koko on
n
, viimeinen elementti tallennetaan hakemistoon(n-1)
. Tässä esimerkissä x (5) on viimeinen elementti. - Matriisin elementeillä on peräkkäiset osoitteet. Oletetaan esimerkiksi, että kohteen aloitusosoite
x(0)
on 2120d. Sitten seuraavan elementin osoitex(1)
on 2124d, osoitteenx(2)
2128d ja niin edelleen.
Tässä kunkin elementin kokoa kasvatetaan 4: llä. Tämä johtuu siitä, että kokoint
on 4 tavua.
C ++ - matriisin alustus
C ++: ssa on mahdollista alustaa taulukko ilmoituksen aikana. Esimerkiksi,
// declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);

Toinen tapa aloittaa taulukko ilmoituksen aikana:
// declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);
Täällä emme ole maininneet taulukon kokoa. Tällaisissa tapauksissa kääntäjä laskee koon automaattisesti.
C ++ -ryhmä tyhjien jäsenten kanssa
Jos taulukossa on kokoa C ++, n
voimme tallentaa enintään n elementtien määrää taulukkoon. Mitä tapahtuu, jos tallennamme vähemmän kuin n elementtien määrää.
Esimerkiksi,
// store only 3 elements in the array int x(6) = (19, 10, 8);
Tässä taulukon x koko on 6
. Olemme kuitenkin alustaneet sen vain 3 elementillä.
Tällaisissa tapauksissa kääntäjä määrittää satunnaiset arvot muille paikoille. Usein tämä satunnainen arvo on yksinkertaisesti 0
.

Kuinka lisätä ja tulostaa taulukkoelementtejä?
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);
Esimerkki 1: Taulukkoelementtien näyttäminen
#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; )
Tuotos
Numerot ovat: 7 5 6 12 35. Numerot ovat: 7 5 6 12 35
Täällä olemme käyttäneet for
silmukan iteroimaan välillä i = 0
on i = 4
. Jokaisessa iteraatiossa olemme tulostaneet numbers(i)
.
Taulukon elementtien tulostamiseen käytimme taas silmukalle perustuvaa aluetta. Jos haluat lisätietoja tästä silmukasta, tarkista C ++ Ranged for Loop.
Huomautus: Valikoimassamme pohjainen silmukka, olemme käyttäneet koodin const int &n
sijasta int n
, koska alue julistuksen. Se const int &n
on kuitenkin edullisempi, koska:
- Käyttämällä
int n
yksinkertaisesti kopioi matriisin elementit muuttujaan n jokaisen iteraation aikana. Tämä ei ole muistia tehokas.
& n käyttää kuitenkin matriisielementtien muistiosoitetta päästäkseen tietoihinsa kopioimatta niitä uuteen muuttujaan. Tämä on muistia säästävä. - Tulostamme yksinkertaisesti taulukkoelementtejä, emme muokkaa niitä. Siksi käytämme,
const
jotta emme muuttaisi vahingossa taulukon arvoja.
Esimerkki 2: Ota syötteet käyttäjältä ja tallenna ne matriisiin
#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; )
Tuotos
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:
- 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
andcount = 0
. - 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. - Lisäämme myös laskennan arvoa
1
kussakin iteraatiossa, jotta voimme saada matriisin koon for-silmukan loppuun mennessä. - Kun kaikki elementit on tulostettu, tulostamme kaikkien numeroiden summa ja keskiarvo. Lukujen keskiarvo saadaan
average = sum / count;
Huomaa: Käytimme alueellista for
silmukkaa normaalin for
silmukan sijaan .
Normaali for
silmukka vaatii meitä määrittämään iteraatioiden määrän, joka annetaan taulukon koon perusteella.
Etäisyyspiiri for
ei kuitenkaan vaadi tällaisia eritelmiä.
C ++ -joukko rajojen ulkopuolella
Jos ilmoitamme taulukon, jonka koko on 10, taulukko sisältää elementtejä indeksistä 0-9.
Jos kuitenkin yritämme käyttää elementtiä indeksissä 10 tai enemmän kuin 10, se johtaa määrittelemättömään käyttäytymiseen.