Taulukot muodossa C ++ - Ilmoita - Alusta - Taulukkoesimerkkejä

Sisällysluettelo:

Anonim

Mikä on taulukko?

Matriisi on tietorakenne, joka tallentaa saman tietotyypin elementin peräkkäin. C ++ -taulukolla on kiinteä koko.

Voit nähdä matriisin kokoelmana muuttujista, jotka ovat samankaltaisia ​​tietotyyppejä. Sen sijaan, että ilmoittaisit kunkin muuttujan ja osoittaisit sille arvon erikseen, voit ilmoittaa yhden muuttujan (taulukon) ja lisätä siihen muuttujien arvot. Jokainen taulukon lisäarvo tunnistetaan hakemistolla.

Tässä C ++ -opetusohjelmassa opit:

  • Mikä on taulukko?
  • Miksi tarvitsemme taulukoita?
  • Ilmoita taulukko muodossa C ++
  • Taulukon alustus
  • Taulukotyypit
    • Yksiulotteinen taulukko
    • Moniulotteinen taulukko
    • Kaksiulotteinen taulukko
    • Kolmiulotteinen taulukko
    • Taulukon osoitin
  • Taulukon arvojen käyttö
  • C ++ - ryhmän edut
  • Matriisin haitat C ++: ssa

Miksi tarvitsemme taulukoita?

Taulukot ovat erittäin tärkeitä kaikilla ohjelmointikielillä. Ne tarjoavat kätevämmän tavan varastoida muuttujia tai samankaltaisen tietotyypin datakokoelma yhdessä sen sijaan, että ne tallennettaisiin erikseen. Jokaista taulukon arvoa käytetään erikseen.

Ilmoita taulukko muodossa C ++

Taulukko C ++: ssa sisältää taulukon tyypin sekä elementtien määrän ilmoittamisen. Syntaksi:

type array-Name [ array-Size ];

Säännöt yhden ulottuvuuden taulukon ilmoittamiseksi C ++: ssa.

  • Tyyppi: Tyyppi on matriisiin tallennettavien elementtien tyyppi, ja sen on oltava kelvollinen C ++ -tietotyyppi.
  • Taulukon nimi: Taulukon nimi on taulukolle annettava nimi.
  • Matriisikoko: Matriisikoko on matriisiin tallennettavien elementtien määrä. Sen on oltava kokonaisluku ja suurempi kuin 0.

Voit esimerkiksi luoda taulukon nimeltä ikä ja tallentaa 5 opiskelijan ikä seuraavasti:

int age[5];

Taulukon ikä tallentaa 5 kokonaislukua, jotka edustavat eri opiskelijoiden ikää.

Taulukon alustus

Taulukon alustus on prosessi, jolla elementit määritetään / tallennetaan taulukkoon. Alustus voidaan tehdä yhdessä lauseessa tai yksi kerrallaan. Huomaa, että matriisin ensimmäinen elementti on tallennettu hakemistoon 0, kun taas viimeinen elementti on tallennettu hakemistoon n-1, jossa n on matriisin elementtien kokonaismäärä.

Ikäryhmän tapauksessa ensimmäinen elementti tallennetaan hakemistoon 0, kun taas viimeinen elementti tallennetaan hakemistoon 4.

Käyttäkäämme ikäryhmää osoittaaksemme, kuinka taulukon alustus voidaan tehdä:

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

{}: N sisältämien elementtien kokonaismäärä ei voi ylittää []: ssä ilmoitettua arvoa. Elementti 19 on indeksillä 0, 18 indeksillä 1, 21 indeksillä 2, 20 indeksillä 3 ja 17 indeksillä 4. Jos et ilmoita taulukkoon tallennettavien elementtien määrää [], taulukko on vain tarpeeksi suuri pitämään sisälle lisätyt elementit {}. Esimerkiksi:

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

Yllä oleva lause luo täsmälleen saman matriisin kuin edellinen. Voit myös määrittää yhden elementin matriisiin sen hakemiston avulla. Esimerkiksi:

age[3] = 20;

Yllä oleva lause tallentaa arvon 20 ryhmän iän indeksille 3. Tämä tarkoittaa, että 20 on 4 : nnen taulukon alkiota.

Taulukotyypit

C ++ -taulukoita on kahta tyyppiä:

  • Yksiulotteinen taulukko
  • Moniulotteinen taulukko
  • Taulukon osoitin

Yksiulotteinen taulukko

Tämä on taulukko, jossa tietoerät on järjestetty lineaarisesti vain yhteen ulottuvuuteen. Sitä kutsutaan yleisesti 1-D-ryhmäksi. Syntaksi:

datatype array-name[size];
  • Taulukon nimi on taulukon nimi.
  • Koko on matriisiin tallennettavien kohteiden määrä.

Esimerkiksi:

#include using namespace std;int main(){int age[5] = { 19, 18, 21, 20, 17 };for (int x = 0; x < 5; x++){cout <

Tuotos:

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Sisältää iostream-otsikkotiedoston koodissamme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Sisältää tavallisen nimitilan, jotta sen luokkia ja toimintoja voidaan käyttää sitä kutsumatta.
  3. Kutsu pääfunktio (), jonka sisälle ohjelman logiikka tulisi lisätä.
  4. Pääfunktion () rungon alku.
  5. Ilmoitetaan ikäryhmä nimeltä 5 kokonaislukua. Viisi kokonaislukua on myös alustettu.
  6. Luo kokonaislukumuuttuja x for for -silmukalla.
  7. For-silmukan rungon alku.
  8. Käytä silmukkamuuttujaa x toistaaksesi taulukon ikäarvot ja tulosta ne konsolille. "\ N" on uuden rivin merkki ja tulostaa uudella rivillä jokaisen iteraation jälkeen.
  9. Silmukan rungon pää.
  10. Pääfunktion () rungon pää.

Moniulotteinen taulukko

Tämä on taulukko, jossa tietoerät on järjestetty muodostamaan matriisiryhmä. Moniulotteisella ryhmällä voi olla mikä tahansa määrä ulottuvuuksia, mutta kaksi- ja kolmiulotteiset taulukot ovat yleisiä. Syntaksi:

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

Taulukon nimi on taulukon nimi, jolla on n ulottuvuutta. Esimerkiksi:

Kaksiulotteinen taulukko

2D-taulukko tallentaa tiedot luetteloon, jossa on 1-D-taulukko. Se on matriisi, jossa on rivejä ja sarakkeita. Voit ilmoittaa 2D-taulukon seuraavalla syntaksilla:

type array-Name [ x ][ y ];

Tyypin on oltava kelvollinen C ++ -tietotyyppi. Katso 2D-taulukko taulukkona, jossa x tarkoittaa rivien lukumäärää ja y sarakkeiden lukumäärää. Tämä tarkoittaa, että tunnistat kukin 2D-matriisin elementit käyttämällä muotoa a [x] [y], jossa x on rivien lukumäärä ja y niiden sarakkeiden määrä, joihin elementti kuuluu.

Tässä on esimerkki 2D-taulukon alustamisesta:

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

Yllä olevassa esimerkissä meillä on 2D-matriisi, joka voidaan nähdä 2x3-matriisina. On 2 riviä ja 3 saraketta. Elementtiin 0 pääsee nimellä [0] [1], koska se sijaitsee indeksoitujen 0 ja sarakkeiden 1 risteyksissä. Elementtiin 3 pääsee nimellä [1] [2], koska se sijaitsee rivillä indeksoitu 1 ja sarake indeksoitu 2 leikkaus.

Huomaa, että lisäsimme yksinkertaisesti kiharaiset olkaimet erottamaan elementtirivit. Alustus olisi voitu tehdä myös seuraavasti:

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

Seuraava C ++ -esimerkki osoittaa, kuinka 2D-taulukko alustetaan ja liikutetaan:

#include using 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[" <

Tuotos:

Tässä on kuvakaappaus yllä olevasta koodista:

Koodin selitys:

  1. Sisältää iostream-otsikkotiedoston koodissamme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Sisältää tavallisen nimitilan, jotta sen luokkia ja toimintoja voidaan käyttää sitä kutsumatta.
  3. Soitetaan main () -funktioon, johon koodi on lisättävä.
  4. Pääfunktion () rungon alku.
  5. Kommentti. C ++-kääntäjä ohittaa tämän.
  6. Ilmoitetaan 2D-taulukko, jossa on 3 riviä ja 2 saraketta. Kohteet on myös lisätty taulukkoon.
  7. Kommentti. C ++-kääntäjä ohittaa tämän.
  8. Muuttujan i luominen käyttämällä silmukkaa a. Tämä muuttuja toistaa taulukon rivihakemistot.
  9. Muuttujan j luominen käyttämällä silmukkaa a. Tämä muuttuja toistaa taulukon sarakeindeksit.
  10. Silmukoiden rungon alku.
  11. Tulosta muuttujien i ja j arvot konsolille konsolin hakasulkeiden sisäpuolelle.
  12. Tulosta taulukon a hakemistoon [i] [j] tallennettu arvo.
  13. Silmukoiden rungon pää.
  14. Main () -funktion pitäisi palauttaa kokonaislukuarvo, jos ohjelma toimii hyvin.
  15. Pääfunktion () rungon pää.

Kolmiulotteinen taulukko

3D-matriisi on matriisiryhmä. Jokainen 3D-ryhmän elementti tunnistetaan 3 indeksin joukolla. 3D-taulukon elementteihin pääsemiseksi käytämme silmukoita varten kolmea. Esimerkiksi:

#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";}

Tuotos:

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Sisältää iostream-otsikkotiedoston koodissamme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Sisältää tavallisen nimitilan, jotta sen luokkia ja toimintoja voidaan käyttää sitä kutsumatta.
  3. Kutsu pääfunktio (), jonka sisälle ohjelman logiikka tulisi lisätä.
  4. Päätoiminnon () rungon alku.
  5. 3D-taulukon, jonka nimi on koko 2x3x2, ilmoittaminen. Taulukon arvot on myös alustettu.
  6. Matriisin hakemistoon [0] [1] [0] tallennetun kohteen käyttäminen ja sen tulostaminen konsolille.
  7. Taulukon hakemistoon [0] [1] [1] tallennetun kohteen käyttäminen ja sen tulostaminen konsolille.
  8. Pääfunktion () rungon pää.

Taulukon osoitin

Osoitin on muuttuja, jolla on osoite. Sen lisäksi, että osoitinta käytetään muuttujan osoitteen tallentamiseen, voimme käyttää sitä taulukon solun osoitteen tallentamiseen. Taulukon nimi osoittaa jatkuvasti ensimmäisen elementin. Harkitse seuraavaa ilmoitusta:

int age[5];

Ikä on osoitin $ age [0] -ryhmään, joka on ikäryhmän ensimmäisen elementin osoite. Harkitse seuraavaa esimerkkiä:

#include using namespace std;int main(){int *john;int age[5] = { 19, 18, 21, 20, 17 };john = age;cout << john << "\n";cout << *john;}

Tuotos:

Huomaa, että yllä olevan lähdön ensimmäinen arvo voi palauttaa eri arvon riippuen tietokoneen muistissa olevan ryhmän ensimmäiselle osalle osoitetusta osoitteesta.

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Sisältää iostream-otsikkotiedoston koodissamme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Sisältää tavallisen nimitilan, jotta sen luokkia ja toimintoja voidaan käyttää sitä kutsumatta.
  3. Kutsu pääfunktio (), jonka sisälle ohjelman logiikka tulisi lisätä.
  4. Päätoiminnon () rungon alku.
  5. Ilmoitetaan osoitinmuuttuja nimeltä * john.
  6. Ilmoitetaan ikäluettelon kokonaislukumatriisi 5 kokonaisluvun tallentamiseksi. Myös kokonaislukujen arvot on alustettu.
  7. Määritetään muuttujalle john taulukon iän ensimmäiseen hakemistoon tallennetun kohteen osoitteen arvo.
  8. Tulostetaan muuttujan john arvo, joka on matriisi-ikän ensimmäiseen hakemistoon tallennetun kohteen osoite.
  9. Ensimmäisen taulukon ikään tallennetun arvon tulostaminen.
  10. Pääfunktion () rungon pää.

Taulukoiden nimiä voidaan käyttää vakioosoitteina, ja päinvastoin. Tämä tarkoittaa, että pääset matriisin ikän hakemistoon 3 tallennettuun arvoon * (ikä + 3) -merkillä. Esimerkiksi:

#include using 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;}

Tuotos:

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Sisältää iostream-otsikkotiedoston koodissamme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Sisältää tavallisen nimitilan, jotta sen luokkia ja toimintoja voidaan käyttää sitä kutsumatta.
  3. Pääfunktion () kutsuminen ja pääfunktion () rungon alku.
  4. Kommentti. C ++-kääntäjä ohittaa tämän.
  5. Ilmoitetaan ikäryhmä nimeltä 5 kokonaislukua.
  6. Lukuosoittimen luominen s.
  7. Määritetään p-taulukon ensimmäisen elementin osoitteen arvo.
  8. Kommentti. C ++-kääntäjä ohittaa tämän.
  9. Tulosta teksti konsolista.
  10. Luo kokonaisluku x käyttämällä silmukkaa a. {Merkitsee silmukan rungon alkua.
  11. Tulosta x: n arvot yhdessä jonkin muun tekstin kanssa konsolista.
  12. Tulosta * (p + x): n arvot konsolille.
  13. Silmukan rungon pää.
  14. Tulosta teksti konsolista.
  15. Luo muuttuja x käyttämällä silmukkaa a. {Merkitsee for-silmukan rungon alkua.
  16. Tulosta x: n arvot 0: sta 4: een jonkin muun tekstin ohella.
  17. Tulosta arvot * (ikä + x).
  18. For-silmukan rungon pää.
  19. Palauta arvo, jos ohjelma toimii onnistuneesti.
  20. Pääfunktion () rungon pää.

Taulukon arvojen käyttö

Taulukon elementteihin pääsee käyttämällä vastaavia hakemistoja. Pääsetyn elementin hakemisto lisätään hakasulkeisiin [] välittömästi taulukon nimen jälkeen. Esimerkiksi:

int john = age[2];

Yllä olevassa esimerkissä sanotaan yksinkertaisesti, että Johnin ikä on tallennettu ryhmän nimeltä ikä 2 hakemistoon. Tämä tarkoittaa, että John ikä on 3 rd arvon jono iässä. Tässä on täydellinen C ++ -esimerkki, joka näyttää, kuinka tähän arvoon päästään ja tulostetaan:

#includeusing namespace std;int main(){int age[5] = { 19, 18, 21, 20, 17 };int john = age[2];cout << "The age of John is:"<

Tuotos:

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Sisältää iostream-otsikkotiedoston koodissamme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
  2. Sisältää tavallisen nimitilan, jotta sen luokkia ja toimintoja voidaan käyttää sitä kutsumatta.
  3. Soitetaan main () -funktioon, johon koodi on lisättävä.
  4. Pääfunktion rungon alku.
  5. Ilmoitetaan ikäryhmä nimeltä 5 kokonaislukuelementtiä.
  6. Matriisi-ikän hakemistoon 2 tallennetun arvon käyttäminen ja arvon tallentaminen muuttujaan nimeltä john.
  7. Muuttujan john arvon tulostaminen konsolille muun tekstin rinnalle.

C ++ - ryhmän edut

Tässä ovat Arrayn C ++: n käytön edut / edut:

  • Taulukkoelementit voidaan kulkea helposti.
  • Matriisidataa on helppo käsitellä.
  • Taulukkoelementteihin pääsee satunnaisesti.
  • Taulukot helpottavat koodin optimointia; siten voimme tehdä paljon työtä käyttämällä vähemmän koodia.
  • Matriisitiedot on helppo lajitella.

Matriisin haitat C ++: ssa

  • Matriisilla on kiinteä koko; näin ollen emme voi lisätä siihen uusia elementtejä alustuksen jälkeen.
  • Enemmän muistia kuin vaaditaan, tuhlaa muistitilaa, ja vähemmän muistin varaamista voi aiheuttaa ongelman.
  • Matriisiin tallennettavien elementtien lukumäärä on tiedettävä etukäteen.

Yhteenveto

  • Taulukko on tietorakenne, joka tallentaa saman tyyppisiä elementtejä.
  • Taulukkoelementit tallennetaan peräkkäin.
  • Taulukkoelementit on merkitty vastaavilla hakemistoillaan. Ensimmäinen elementti on indeksissä 0, kun taas viimeinen elementti on indeksissä n-1, missä on taulukkoelementtien kokonaismäärä.
  • Taulukon ilmoitukseen sisältyy taulukon elementtien tietotyyppien määrittely sekä taulukkoon tallennettavien elementtien lukumäärä.
  • Yksiulotteinen taulukko tallentaa elementit peräkkäin.
  • Kaksiulotteinen taulukko tallentaa elementit riveihin ja sarakkeisiin.
  • Kolmiulotteinen taulukko on matriisiryhmä.
  • Elementit voidaan lisätä matriisiin niiden hakemistojen avulla.
  • Taulukkoelementteihin pääsee hakemistojen avulla.
  • Moniulotteisella taulukolla on enemmän kuin yksi ulottuvuus.
  • Taulukon nimi osoittaa sen ensimmäiseen elementtiin.
  • Matriisien koko on kiinteä, joten uusia elementtejä ei voida lisätä matriisiin sen alustamisen jälkeen.