Massiivid tähtedega C ++ - Deklareeri - Initsialiseeri Näidikud massiivi näideteks

Lang L: none (table-of-contents):

Anonim

Mis on massiiv?

Massiiv on andmestruktuur, mis salvestab järjestikku sama tüüpi andmetüüpi. C ++ massiivil on fikseeritud suurus.

Massiivi näete sarnase andmetüübiga muutujate kogumina. Iga muutuja deklareerimise ja väärtuse eraldi määramise asemel võite deklareerida ühe muutuja (massiivi) ja lisada sellele erinevate muutujate väärtused. Iga massiivi lisandväärtus identifitseeritakse indeksiga.

Selles C ++ õpetuses saate teada:

  • Mis on massiiv?
  • Miks me vajame massiive?
  • Deklareerige massiiv C ++ keeles
  • Massiivi initsialiseerimine
  • Massiivide tüübid
    • Ühemõõtmeline massiiv
    • Mitmemõõtmeline massiiv
    • Kahemõõtmeline massiiv
    • Kolmemõõtmeline massiiv
    • Massiivi osuti
  • Juurdepääs massiivi väärtustele
  • Massiivi eelised C ++ keeles
  • Massiivi puudused C ++ keeles

Miks me vajame massiive?

Massiivid on igas programmeerimiskeeles väga olulised. Need pakuvad mugavamat viisi muutujate või sarnase andmetüübi andmete kogumise koos salvestamise asemel. Massiivi igale väärtusele pääseb juurde eraldi.

Deklareerige massiiv C ++ keeles

Massiivi deklaratsioon C ++ keeles sisaldab massiivi poolt salvestatavate elementide arvu ja arvu. Süntaks:

type array-Name [ array-Size ];

Reeglid ühemõõtmelise massiivi deklareerimiseks C ++ keeles.

  • Tüüp: tüüp on massiivi salvestatavate elementide tüüp ja see peab olema kehtiv C ++ andmetüüp.
  • Massiivi nimi: Massiivi nimi on massiivile omistatav nimi.
  • Massiivi suurus: Massiivi suurus on massiivi salvestatavate elementide arv. See peab olema täisarv ja suurem kui 0.

Näiteks saate luua massiivi nimega vanus ja salvestada 5 õpilase vanused järgmiselt:

int age[5];

Massiiv vanus salvestab 5 täisarvu, mis tähistavad erinevate õpilaste vanuseid.

Massiivi initsialiseerimine

Massiivi initsialiseerimine on massiivi elementide määramise / salvestamise protsess. Initsialiseerimise saab teha ühe avaldusega või ükshaaval. Pange tähele, et massiivi esimene element salvestatakse indeksis 0, viimane element aga indeksis n-1, kus n on massiivi elementide koguarv.

Vanusemassiivi korral salvestatakse esimene element indeksis 0, viimane element aga indeksis 4.

Kasutage vanusemassiivi, et näidata, kuidas saab massiivi initsialiseerida:

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

Elementide koguarv {} sees ei tohi ületada väärtust, mis on märgitud []. Element 19 on indeksil 0, 18 indeksil 18, indeksil 2 21, indeksil 3 20 ja indeks 4. Kui te ei määra massiivi [] sees salvestatavate elementide arvu, sisestage massiiv on ainult piisavalt suur, et mahutada elementi {} lisatud elemendid. Näiteks:

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

Ülaltoodud lause loob täpselt sama massiivi kui eelmine. Massiivile saab selle indeksi abil määrata ka ühe elemendi. Näiteks:

age[3] = 20;

Ülaltoodud lause sisaldab väärtuse 20 vanuse massiivi indeksis 3. See tähendab, et 20 saab 4 th massiivi element.

Massiivide tüübid

C ++ massiive on kahte tüüpi:

  • Ühemõõtmeline massiiv
  • Mitmemõõtmeline massiiv
  • Massiivi osuti

Ühemõõtmeline massiiv

See on massiiv, milles andmeüksused on paigutatud lineaarselt ainult ühte dimensiooni. Seda nimetatakse tavaliselt 1-D massiiviks. Süntaks:

datatype array-name[size];
  • Massiivi nimi on massiivi nimi.
  • Suurus on massiivi salvestatavate üksuste arv.

Näiteks:

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

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Iostreami päisefaili kaasamine meie koodi. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
  2. Kaasa arvatud standardne nimeruum, et kasutada selle klasse ja funktsioone seda kutsumata.
  3. Funktsiooni main () kutsumine, mille sisse tuleks lisada programmi loogika.
  4. Põhifunktsiooni () keha algus.
  5. Vanuse massiivi deklareerimine 5 täisarvu salvestamiseks. Samuti on initsialiseeritud 5 täisarvu.
  6. Looge täisarvu muutuja x, kasutades silmuseks for.
  7. For silmusekeha algus.
  8. Massiivivanuse väärtuste kordamiseks ja konsoolile printimiseks kasutage silmusmuutujat x. "\ N" on uue rea märk ja prinditakse pärast iga iteratsiooni uues reas.
  9. Silmuse jaoks keha ots.
  10. Põhifunktsiooni () keha lõpp.

Mitmemõõtmeline massiiv

See on massiiv, milles andmeüksused on paigutatud massiivi massiivi moodustamiseks. Mitmemõõtmelisel massiivil võib olla mis tahes arv mõõtmeid, kuid kahemõõtmelised ja kolmemõõtmelised massiivid on tavalised. Süntaks:

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

Massiivinimi on massiivi nimi, millel on n dimensiooni. Näiteks:

Kahemõõtmeline massiiv

2D massiiv salvestab andmeid 1-D massiiviga loendisse. See on ridade ja veergudega maatriks. 2D massiivi deklareerimiseks kasutage järgmist süntaksit:

type array-Name [ x ][ y ];

Tüüp peab olema kehtiv C ++ andmetüüp. Vaadake 2D massiivi tabelina, kus x tähistab ridade arvu, y tähistab veergude arvu. See tähendab, et identifitseerite iga 2D massiivi elemendi, kasutades vormi a [x] [y], kus x on rea number ja y veergude arv, kuhu element kuulub.

Siin on näide 2D massiivi initsialiseerimisest:

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

Ülaltoodud näites on meil 2D massiiv, mida saab vaadelda kui 2x3 maatriksit. Seal on 2 rida ja 3 veergu. Elemendile 0 pääseb ligi kui [0] [1], kuna see asub indekseeritud 0 ja veeru 1 ristumiskohas. Elemendile 3 pääseb ligi kui [1] [2], kuna see asub indekseeritud 1 ja veeru 2 indekseeritud ristmik.

Pange tähele, et elementide erinevate ridade eristamiseks lisasime lihtsalt lokkis traksid. Initsialiseerimise oleks võinud teha ka järgmiselt:

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

Järgmine C ++ näide näitab, kuidas 2D massiivi initsialiseerida ja läbida:

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

Väljund:

Siin on ülaltoodud koodi ekraanipilt:

Koodi selgitus:

  1. Iostreami päisefaili kaasamine meie koodi. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
  2. Kaasa arvatud standardne nimeruum, et kasutada selle klasse ja funktsioone seda kutsumata.
  3. Funktsiooni main () kutsumine, kuhu kood tuleks lisada.
  4. Põhifunktsiooni () keha algus.
  5. Kommentaar. C ++ kompilaator jätab selle vahele.
  6. 3 rida ja 2 veergu 2D massiivi deklareerimine Massiivile on lisatud ka üksusi.
  7. Kommentaar. C ++ kompilaator jätab selle vahele.
  8. Muutuja i loomine tsükli a abil. See muutuja kordub massiivi reaindeksites.
  9. Muutuja j loomine silmuseks a abil. See muutuja kordub massiivi veeruindeksites.
  10. Silmuste keha algus.
  11. Trükkige konsooli nurksulgudesse konsoolile muutujate i ja j väärtused.
  12. Trükkige massiivi a indeksisse [i] [j] salvestatud väärtus välja.
  13. Silmuste kere ots.
  14. Funktsioon main () peaks tagastama täisarvu, kui programm töötab hästi.
  15. Põhifunktsiooni () keha lõpp.

Kolmemõõtmeline massiiv

3D massiiv on massiivide massiiv. Iga 3D-massiivi element identifitseeritakse 3-indeksi kogumi abil. 3D massiivi elementidele juurde pääsemiseks kasutame silmuste jaoks kolme. Näiteks:

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

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Iostreami päisefaili kaasamine meie koodi. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
  2. Kaasa arvatud standardne nimeruum, et kasutada selle klasse ja funktsioone seda kutsumata.
  3. Funktsiooni main () kutsumine, mille sisse tuleks lisada programmi loogika.
  4. Põhifunktsiooni () keha algus.
  5. 3D massiivi deklareerimine suurusega 2x3x2. Samuti on initsialiseeritud massiivi väärtused.
  6. Massiivi indeksis [0] [1] [0] salvestatud üksuse juurde pääsemine ja selle konsoolile printimine.
  7. Massiivi indeksis [0] [1] [1] salvestatud üksuse juurde pääsemine ja selle konsoolile printimine.
  8. Põhifunktsiooni () keha lõpp.

Massiivi osuti

Kursor on muutuja, mis hoiab aadressi. Peale selle, et muutuja aadressi salvestamiseks osutatakse kursorile, võime seda kasutada massiivi lahtri aadressi salvestamiseks. Massiivi nimi osutab pidevalt selle esimesele elemendile. Mõelge allpool toodud deklaratsioonile:

int age[5];

Vanus on osutus vanusele $ age [0], massiivi esimese elemendi aadressile. Vaatleme järgmist näidet:

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

Väljund:

Pange tähele, et ülaltoodud väljundi esimene väärtus võib anda teistsuguse väärtuse, sõltuvalt massiivi esimesele elemendile teie arvuti mälus määratud aadressist.

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Iostreami päisefaili kaasamine meie koodi. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
  2. Kaasa arvatud standardne nimeruum, et kasutada selle klasse ja funktsioone seda kutsumata.
  3. Funktsiooni main () kutsumine, mille sisse tuleks lisada programmi loogika.
  4. Põhifunktsiooni () keha algus.
  5. Kursormuutuja deklareerimine * john.
  6. Deklareerides täisarvu massiivi nimega vanus 5 täisarvu salvestamiseks. Samuti on lähtestatud täisarvude väärtused.
  7. Muutujale John omistatakse massiivi vanuse esimesse indeksisse salvestatud üksuse aadressi väärtus.
  8. Muutuja John väärtuse printimine, mis on massiivi vanuse esimesse indeksisse salvestatud üksuse aadress.
  9. Esimese massiivi vanusesse salvestatud väärtuse printimine.
  10. Põhifunktsiooni () keha lõpp.

Massiivinimesid saab kasutada pidevate osutajatena ja see kehtib ka vastupidi. See tähendab, et pääsete massiivi vanuse indeksis 3 salvestatud väärtusele juurde nupuga * (vanus + 3). Näiteks:

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

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Iostreami päisefaili kaasamine meie koodi. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
  2. Kaasa arvatud standardne nimeruum, et kasutada selle klasse ja funktsioone seda kutsumata.
  3. Põhifunktsiooni () kutsumine ja põhifunktsiooni keha algus.
  4. Kommentaar. C ++ kompilaator jätab selle vahele.
  5. Vanuse massiivi deklareerimine 5 täisarvu salvestamiseks.
  6. Täisarvukursori loomine lk.
  7. Massiivi vanuse esimese elemendi aadressi väärtuse määramine p.
  8. Kommentaar. C ++ kompilaator jätab selle vahele.
  9. Trükkige konsoolil tekst välja.
  10. Looge tsükli a abil täisarv x. {Tähistab silmuse jaoks for for the body algust.
  11. Välja printige x väärtused koos mõne muu tekstiga konsoolil.
  12. Printige konsoolil välja * (p + x) väärtused.
  13. Silmuse jaoks keha ots.
  14. Trükkige konsoolil tekst välja.
  15. Looge muutuja x, kasutades silmuse jaoks a-d. {Tähistab for-silmuse keha algust.
  16. Printige x väärtused vahemikku 0 kuni 4 koos mõne muu tekstiga.
  17. Printige välja * (vanus + x) väärtused.
  18. For silmusekeha ots.
  19. Tagastage väärtus, kui programm töötab edukalt.
  20. Põhifunktsiooni () keha lõpp.

Juurdepääs massiivi väärtustele

Massiivi elementidele pääseb ligi nende vastavate indeksite abil. Juurdepääsetava elemendi indeks lisatakse nurksulgudesse [] kohe pärast massiivi nime. Näiteks:

int john = age[2];

Ülaltoodud näites väidame lihtsalt, et johni vanus on salvestatud vanuse massiivi indeksisse 2. See tähendab, et john vanus on 3 rd väärtus massiivi vanusest. Siin on täielik C ++ näide, mis näitab, kuidas sellele väärtusele juurde pääseda ja seda printida:

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

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Iostreami päisefaili kaasamine meie koodi. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
  2. Kaasa arvatud standardne nimeruum, et kasutada selle klasse ja funktsioone seda kutsumata.
  3. Funktsiooni main () kutsumine, kuhu kood tuleks lisada.
  4. Põhifunktsiooni () keha algus.
  5. Vanuse massiivi deklareerimine 5 täisarvu elemendi salvestamiseks.
  6. Juurdepääs massiivi vanuse indeksis 2 salvestatud väärtusele ja selle väärtuse salvestamine muutujasse nimega john.
  7. Muutuja John väärtuse printimine konsoolile koos muu tekstiga.

Massiivi eelised C ++ keeles

Siin on massiivi C ++ kasutamisel plussid / eelised:

  • Massiivielemente saab hõlpsasti läbida.
  • Massiiviandmetega lihtne manipuleerida.
  • Massiivielementidele pääseb juurde juhuslikult.
  • Massiivid hõlbustavad koodi optimeerimist; seega saame vähem koodi kasutades teha palju tööd.
  • Massiivandmeid on lihtne sorteerida.

Massiivi puudused C ++ keeles

  • Massiivil on kindel suurus; järelikult ei saa me sellele pärast initsialiseerimist uusi elemente lisada.
  • Nõutavast rohkem mälu eraldamine viib mäluruumi raiskamiseni ja vähem mälu eraldamine võib tekitada probleemi.
  • Massiivi salvestatavate elementide arv peab olema eelnevalt teada.

Kokkuvõte

  • Massiiv on andmestruktuur, mis salvestab sama andmetüübi elemente.
  • Massiivielemendid salvestatakse järjestikku.
  • Massiivielemendid tähistatakse nende vastavate indeksitega. Esimene element asub indeksis 0, viimane element aga indeksis n-1, kus on massiivi elementide koguarv.
  • Massiivi deklaratsioon hõlmab nii massiivi elementide andmetüüpide kui ka massiivi salvestatavate elementide arvu määratlemist.
  • Ühemõõtmeline massiiv salvestab elemente järjestikku.
  • Kahemõõtmeline massiiv salvestab elemente ridadesse ja veergudesse.
  • Kolmemõõtmeline massiiv on massiivide massiiv.
  • Elemente saab massiivi lisada nende indeksite abil.
  • Massiivielementidele pääseb juurde nende indeksite abil.
  • Mitmemõõtmelisel massiivil on rohkem kui üks mõõde.
  • Massiivi nimi osutab selle esimesele elemendile.
  • Massiividel on kindel suurus, mis tähendab, et massiivi ei saa pärast selle initsialiseerimist uusi elemente lisada.