Curs C++ | Sectiunea 13 – Siruri de siruri
💡 Am discutat pana in acest moment numai de vectori al caror elemente sunt de tip int. Putem insa sa folosim vectori ce contin date de orice tip. Spre exemplu:
Altfef spus, orice tip de date poate fi stocat sub forma unui sir, chiar si un alt sir. Pana acum am presupus ca un sir poate stoca doar scalari, dar in realiate poate stoca chiar si elemente complexe. Sa vorbim despre cazul in care elementele unui sir sunt alte siruri.
♛ Cel mai simplu mod de a ne imagina acest lucru este sub forma unei table de sah, ce are linii si coloane. Alt exemplu la fel de popular, dar acum in cazul matematicii este matricea, ce are aceleasi proprietati.
Daca ne dorim sa reproducem o tabla de sah, stim ca aceasta are 8 linii si 8 coloane. Astfel, ar trebui sa scriem 8 vectori, fiecare cu 8 elemente.
Matrice
❗ Am mai trecut deja prin aceasta problema cand am vorbit prima oara de vectori. Deci putem converti acele 8 linii fiecare cu 8 elemente intr-o matrice de forma urmatoare:
O matrice mai poarta numele si de sir bidimensional. Prezenta celor 2 perechi de paranteze drepte anunta compilatorul ca acesta nu este un vecor ci un sir al carui elemente sunt vectori.
💡 Accesarea elementelor se face acum prin 2 indici, primul ce selecteaza linia iar al doilea ce selecteaza coloana. Spre exemplu, daca vrem sa salvam o valoare pe linia 5 coloana 4, am scrie astfel:
❗ Tineti cont de faptul ca si aici, ca si in cazul vectorului, indicii pornesc de la 0, nu de la 1. Matricea noastra desfasurata ar arata astfel:
Accesarea elementelor unei matrice printr-o expresie se face la fel ca in cazul vectorului, singura diferenta fiind ca acum avem nevoie de 2 indici. Primul for ne permite parcurgerea liniilor prin variabila i iar al doilea ne permite parcugerea coloanelor prin variabila j.
Atentie, modul in care este scris in acest moment codul, matricea se parcuge linie cu linie. Va recomand sa va jucati putin cu aceste matrici, inversati indicii observati modul de parcugere 🙂 .
Siruri Multidimensionale
💡 C++ nu limiteaza dimensiunile unui sir, astfel ca putem sa avem spre exemplu un sir cu 3 dimensiuini.
🏨Un exemplu practic pentru acest sir ar fi sa ne imaginam un hotel ce are mai multe corpuri.
- prima valoare reprezinta corpul
- a doua valoare reprezinta etajul din fiecare corp
- a treia valoare reprezinta camera in fiecare etaj
Iar in momentul in care vom salva o valoare, aceasta va reprezenta numarul de oaspeti cazati in acea camera.
Desigur, putem avea un sir si cu 4 dimensiuni si tot asa, depinde de nevoile noastre si de ce ne dorim sa implementam.
Aici se termina si aceasta sectiune. Daca aveti intrebari suplimentare, puteti folosi daele de aici. 🙂
➡ Sectiunea anterioara:Curs C++ | Sectiunea 12 – Vectori
➡ Sectiunea urmatoare:Curs C++ | Sectiunea 14 – Structuri

