En matrise er en type datastruktur som brukes til å lagre samlingen av de samme datatypene som holdes på sammenhengende minneplasseringer. Matriser kan være endimensjonale eller flerdimensjonale basert på antall retninger matrisen kan vokse i. I denne artikkelen vil vi studere flerdimensjonale arrays som todimensjonale arrays og tredimensjonale arrays.
Hva er Multidimensional Array i C++?
En flerdimensjonal matrise er en matrise med mer enn én dimensjon. Det er den homogene samlingen av elementer der hvert element er tilgjengelig ved hjelp av flere indekser.
Flerdimensjonal array-erklæring
datatype arrayName [ size1][size2]...[sizeN];>
hvor,
- data-type: Type data som skal lagres i matrisen.
- arrayName: Navn på matrisen.
- størrelse 1, størrelse 2, …, størrelse N: Størrelse på hver dimensjon.
Eksempel:
Two dimensional array: int two_d[2][4]; Three dimensional array: int three_d[2][4][8];>
Størrelsen på en flerdimensjonal matrise
Størrelsen på en matrise er lik størrelsen på datatypen multiplisert med det totale antallet elementer som kan lagres i en matrise. Vi kan beregne det totale antallet elementer i en matrise ved å multiplisere størrelsen på hver dimensjon i en flerdimensjonal matrise.
For eksempel:
int arr1[2][4];>
- Matrisen int arr1[2][4] kan lagre totalt (2*4) = 8 elementer.
- I C++ tar int datatype 4 byte og vi har 8 elementer i matrisen 'arr1' av typen int.
- Total størrelse = 4*8 = 32 byte .
int arr2[2][4][8];>
- Array int arr2[2][4][8] kan lagre totalt (2*4*8) = 64 elementer.
- Den totale størrelsen på ' arr2 ' = 64*4 = 256 byte .
For å bekrefte beregningen ovenfor kan vi bruke størrelsen av() metode for å finne størrelsen på en matrise.
C++
listnode java
// C++ program to verify the size of multidimensional> // arrays> #include> using> namespace> std;> > int> main()> {> >// creating 2d and 3d array> >int> arr1[2][4];> >int> arr2[2][4][8];> > >// using sizeof() operator to get the size of the above> >// arrays> >cout <<>'Size of array arr1: '> <<>sizeof>(arr1)> ><<>' bytes'> << endl;> >cout <<>'Size of array arr2: '> <<>sizeof>(arr2)> ><<>' bytes'>;> > >return> 0;> }> |
>
>Produksjon
Size of array arr1: 32 bytes Size of array arr2: 256 bytes>
De mest brukte flerdimensjonale matrisene er:
- Todimensjonal array
- Tredimensjonal array
Two Dimensional Array (eller 2D Array)
En todimensjonal matrise i C++ er en samling av elementer organisert i rader og kolonner. Det kan visualiseres som en tabell eller et rutenett, hvor hvert element er tilgjengelig ved hjelp av to indekser: en for raden og en for kolonnen. Som en endimensjonal matrise, varierer todimensjonale matriseindekser også fra 0 til n-1 for både rader og kolonner.
preg_match

Syntaks for 2D-array
data_Type array_name[ n ][ m ];
Hvor,
- n: Antall rader.
- m: Antall kolonner.
Vi kan deklarere en 2D-array statisk og dynamisk. I statisk deklarasjon tildeles minne under kompileringstid, og i dynamisk minne tildeles under kjøretid. Ovennevnte er syntaksen for den statiske deklarasjonen av en 2D-matrise. For å vite hvordan du deklarerer 2d-matrisen dynamisk, se dette artikkel.
Initialisering av to-dimensjonale arrays i C++
Ulike måter å initialisere en 2D-matrise er gitt nedenfor:
- Bruke initialiseringsliste
- Bruke løkker
1. Initialiser 2D-array ved å bruke Initialiseringslisten
Vi kan initialisere en 2D-array ved å bruke en initialiseringsliste på to måter. Nedenfor er den første metoden for å initialisere en 2D-array ved å bruke en initialiseringsliste.
Første metode: Arrayen nedenfor har 2 rader og 4 kolonner. Elementene fylles på en måte som de første 4 elementene fylles i den første raden og de neste 4 elementene fylles i den andre raden.
int arr[2][4] = {0, 1, 2, 3, 4, 5, 6, 7};> Andre metode: Følgende måte er den renere måten å initialisere en 2D-matrise på. Den nestede listen representerer elementene i en rad og antallet elementer inne i den er lik antall kolonner i en 2D-matrise. Antall nestede lister representerer antall kolonner.
int x[2][4] = {{0, 1, 2, 3}, {4, 5, 6, 7}};> 2. Initialisering av 2D-array ved hjelp av Loops
Vi kan også initialisere 2D-array ved hjelp av loops. For å initialisere 2D-array må vi bruke to nestede løkker og nestede løkker er lik dimensjonen. For eksempel, for å initialisere en 3D-array, må vi bruke tre nestede løkker. La oss se et eksempel.
Eksempel: I eksemplet nedenfor har vi initialisert 2D-matrisen med 1. Den ytre sløyfen brukes til å spore rader i=0 betyr den første raden på grunn av 0-indeksering på samme måte som j=0 betyr den første kolonnen og å kombinere denne x [0][0] representerer den første cellen i 2D-matrisen.
int x[2][4]; for(int i = 0; i <2; i++){ for(int j = 0; j <4; j++){ x[i][j] = 1; } }> Tilgang til elementer av todimensjonale arrays i C++
Vi kan få tilgang til elementene i en 2-dimensjonal matrise ved å bruke rad- og kolonneindekser. Det ligner på matriseelementposisjon, men den eneste forskjellen er at her starter indeksering fra 0.
Syntaks:
array_name[i][j];>
hvor,
python os listedir
- Jeg: Indeks for rad.
- j: Indeks for kolonnen.
Eksempel: Nedenfor er indeksen over elementer i den andre raden og den tredje kolonnen.
int x[1][2];>
La oss forstå dette ved å bruke kode ved å skrive ut elementer i en 2D-matrise.
Eksempel på 2D-array
C++
// c++ program to illustrate the two dimensional array> #include> using> namespace> std;> > int> main()> {> > >int> count = 1;> > >// Declaring 2D array> >int> array1[3][4];> > >// Initialize 2D array using loop> >for> (>int> i = 0; i <3; i++) {> >for> (>int> j = 0; j <4; j++) {> >array1[i][j] = count;> >count++;> >}> >}> > >// Printing the element of 2D array> >for> (>int> i = 0; i <3; i++) {> >for> (>int> j = 0; j <4; j++) {> >cout << array1[i][j] <<>' '>;> >}> >cout << endl;> >}> > >return> 0;> }> |
>
>Produksjon
vårstøvelarkitektur
1 2 3 4 5 6 7 8 9 10 11 12>
Forklaring: I koden ovenfor har vi initialisert tellingen med '1' og erklært en 2D-array med 3 rader og 4 kolonner etter at vi initialiserte arrayen med verdien av telling og økningsverdi av telling i hver iterasjon av løkken. Deretter skriver vi ut 2D-matrisen ved hjelp av en nestet sløyfe, og vi kan se i utgangen nedenfor at det er 3 rader og 4 kolonner.
Tidskompleksitet: På M)
Plass kompleksitet: På M)
hvor n er antall rader og m er antall kolonner.
Tredimensjonal array i C++
3D-matrisen er en datastruktur som lagrer elementer i en tredimensjonal kuboid-lignende struktur. Det kan visualiseres som en samling av flere todimensjonale arrays stablet oppå hverandre. Hvert element i en 3D-matrise identifiseres av de tre indeksene: radindeksen, kolonneindeksen og dybdeindeksen.

Erklæring om tredimensjonal array i C++
For å erklære en 3D-matrise i C++, må vi spesifisere dens tredje dimensjon sammen med 2D-dimensjoner.
Syntaks:
dataType arrayName[d][r];>
- data-type: Type data som skal lagres i hvert element.
- arrayName: Navn på matrisen
- d: Antall 2D-arrayer eller dybde på array.
- r: Antall rader i hver 2D-array.
- c: Antall kolonner i hver 2D-array.
Eksempel:
int array[3][5][2];>
Initialisering av tredimensjonal array i C++
For å initialisere 3D-matrisen i C++, følger vi de samme metodene som vi har brukt for å initialisere 2D-matrisen. I 3D-array har vi en dimensjon til, så vi må legge til en nestet liste over elementer.
En 3D-matrise i C kan initialiseres ved å bruke:
- Initialiseringsliste
- Løkker
Initialisering av 3D-array ved hjelp av Initializer List
Metode 1: I denne metoden må vi skrive det totale antallet elementer i krøllete klammeparenteser, og hvert element plasseres på sin posisjon i henhold til dimensjonen som er gitt.
int x[3][5][2] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30};> Metode 2 (bedre) : I denne metoden har vi partisjonert elementene ved hjelp av nestede lister og den er lett å lese.
int x[3][5][2] = { { {0, 1}, {2, 3}, {4, 5}, {6, 7}, {8, 9} } , { {10, 11}, {12, 13}, {14, 15}, {16, 17}, {18, 19} } , { {20, 21}, {22, 23}, {24, 25}, {26, 27}, {28, 30} } , } ;> Initialisering av 3D-array ved hjelp av loops
bytte tilfelle java
Denne metoden er den samme som å initialisere en 2D-array ved å bruke løkker med en mer nestet løkke for den tredje dimensjonen.
int x[3][5][2]; for (int i = 0; i <3; i++) { for (int j = 0; j <5; j++) { for (int k = 0; k <2; k++) { x[i][j][k] = (some_value) ; } } }> Tilgang til elementer i tredimensjonal array i C++
Å få tilgang til elementer i 3D-matriser er like enkelt som å få tilgang til elementer i 2D-matriser. Her er det vi må gjøre ekstra arbeid å legge til en nestet løkke til for å holde styr på den tredje dimensjonen.
C++
// C++ program to illustrate the 3d array> #include> using> namespace> std;> > int> main()> {> > >int> count = 0;> >// declaring 3d array> >int> x[2][2][3];> > >// initializing the array> >for> (>int> i = 0; i <2; i++) {> >for> (>int> j = 0; j <2; j++) {> >for> (>int> k = 0; k <3; k++) {> >x[i][j][k] = count;> >count++;> >}> >}> >}> > >// printing the array> >for> (>int> i = 0; i <2; i++) {> >for> (>int> j = 0; j <2; j++) {> >for> (>int> k = 0; k <3; k++) {> >printf>(>'x[%d][%d][%d] = %d
'>, i, j, k,> >x[i][j][k]);> >count++;> >}> >}> >}> > >return> 0;> }> |
>
>Produksjon
x[0][0][0] = 0 x[0][0][1] = 1 x[0][0][2] = 2 x[0][1][0] = 3 x[0][1][1] = 4 x[0][1][2] = 5 x[1][0][0] = 6 x[1][0][1] = 7 x[1][0][2] = 8 x[1][1][0] = 9 x[1][1][1] = 10 x[1][1][2] = 11>
Forklaring: I koden ovenfor har vi initialisert 3D-matrisen ved å bruke sløyfen som forklart ovenfor med tallet fra 0 til 7 ved å bruke tellevariabelen og deretter få tilgang til elementene ved å bruke den samme sløyfen som ble brukt for å initialisere 3D-matrisen. Den eneste forskjellen er at i stedet for å tilordne et element på en bestemt posisjon si x[0][0][1]=1 vi skriver ut elementet som er lagret på det stedet, som vist i utgangen nedenfor.