Slett 2D Array C ++

Slett 2D Array C ++
En todimensjonal matrise kan konstrueres på to forskjellige måter: med vanlig minne eller gratis lagring. Hvis et program utfører, har det tilgang til både det vanlige minne og ekstra minne. Koden er ikke tvunget til å bruke gratis lagring, noe som er ekstra minne. I vanlig minne vil programmet generere en standard todimensjonal matrise. Hvis programmet har til hensikt å konstruere den samme 2-dimensjonale matrisen i gratis lagring, kan det gjøre det dynamisk.

I hver type minne varierer metoden for å definere en todimensjonal matrise. Bare la et normalt todimensjonalt utvalg gå utenfor rekkevidde for å slette den. Bruk den slett [] operatøren effektivt for å slette en todimensjonal matrise generert i det gratis biblioteket. La oss diskutere hvordan du sletter en todimensjonal matrise i C ++:

Slett en todimensjonal enkel matrise

For at en todimensjonal normal matrise skal gå utenfor rekkevidde, må du slette. Ved et nestet domene indikerer programmet dette:

#inkludere
ved hjelp av navneområdet STD;
int main ()

if (1 == 1)
String arr2d [] [4] = "Zz", "Zy", "ZX", "ZW",
"Mm", "ml", "mk", "mj",
"II", "ih", "ig", "if",
"Pp", "po", "pn", "pm";
cout<< arr2D[1][1] <
retur 0;

Først må vi introdusere overskriftsfilen . Vi erklærer en todimensjonal matrise og spesifiserer elementene i denne matrisen. Uttalelsen 'cout' brukes på første rad og første kolonne. Så vi får elementet til stede på første rad og første kolonne. Annet enn det blir alle elementer slettet. Vi avslutter programmet ved å legge inn kommandoen 'Return 0'.

'ML' er resultatet etter å ha kjørt ovennevnte kode. Den nestede konteksten er et avsnitt i IF-konstruksjonen. På slutten av seksjonen er matrisen ikke lenger gyldig. Det har vært en kommentarindikasjon under funksjonsdelen i koden. Programmet ville ikke sammenstille hvis det er eliminert, og en feilvarsel kan vises.

Den standard todimensjonale matrisen som er spesifisert i funksjonen av funksjonen, avsluttes etter funksjonsanropet i følgende kode:

#inkludere
ved hjelp av navneområdet STD;
ugyldig fn ()

String arr2d [] [4] = "Zz", "Zy", "ZX", "ZW",
"PP", "Po", "PN", "PM",
"II", "ih", "ig", "if",
"Mm", "ml", "mk", "mj";
cout<< arr2D[1][1] <
int main ()

fn ();
retur 0;

I begynnelsen av programmet inkluderer vi overskriftsfilen . Standard navneområde blir brukt. Vi kaller tomrommet fn (). Her definerer vi elementene i den todimensjonale matrisen. Vi bruker "cout" -uttalelsen for å få det nødvendige elementet i det definerte matrisen.

Etter alt dette bruker vi Main () -funksjonen. Inne i kroppen av denne funksjonen erklærer vi FN (). På slutten brukes kommandoen 'retur 0'.

På globalt nivå har det ikke blitt tillatt en verdi til en todimensjonal komponent før erklæring.

Slett en dynamisk konstruert todimensjonal gratis lagringspeker-matrise

På større nivå ville tildeling før erklæring ikke være påkrevd. Det er nyttig å ha en todimensjonal array-definisjon i et nestet domene i C ++ primærfunksjonen for pedagogiske formål. Uttrykket “Slett [] 2-dimensjonal matrise” brukes til å slette en 2-D-matrise som ble spesifisert i programmet. Denne slettingen må skje innenfor sitt domene for å avlaste minnet og redusere minnet overløp. Med et nestet omfang eksemplifiserer det påfølgende programmet dette:

#inkludere
ved hjelp av navneområdet STD;
int main ()

if (1 == 1)
String (*ptr2d) [5] = ny streng [5] [5] "Zz", "Zy", "ZX", "ZW",
"PP", "Po", "PN", "PM",
"II", "ih", "ig", "if",
"Mm", "ml", "mk", "mj",
"Ea", "eb", "ec", "ed", "ee";
cout<< ptr2D[0][0] <slett [] ptr2d;
cout<< ptr2D[0][0] <
retur 0;

Etter å ha inkludert biblioteket brukes standard navneområdet. Hovedfunksjonen () er nå erklært. Hvis tilstanden er oppnådd. 2D -arrayens peker er konstruert. Etter det definerer vi en todimensjonal matrise og gir dens elementer. På null rader og null kolonner brukes 'cout' uttalelsen. Slett [] -teknikken blir brukt. Vi har brukt "cout" -erklæringen igjen etter å ha slettet den. Vi avslutter programmet ved å utføre kommandoen 'Return 0'.

Etter å ha slettet elementene i matrisen, går koden tilbake til ingenting.

Peker-til-peker todimensjonal gratis minne-matrise

Som en peker-til-peker-matrise kan en todimensjonal matrise genereres. I denne situasjonen må hver av radene elimineres først, etterfulgt av den gjenværende 1D -arrayen. I C ++ demonstrerer den påfølgende forekomsten dette:

#inkludere
ved hjelp av navneområdet STD;
int main ()

streng ** ptr2d = ny streng*[3];
ptr2d [0] = ny streng [5];
ptr2d [0] [0] = "ZZ"; ptr2d [0] [1] = "zy"; ptr2d [0] [2] = "ZX"; ptr2d [0] [3] = "ZW";
ptr2d [1] = ny streng [5];
ptr2d [1] [0] = "mm"; ptr2d [1] [1] = "ml"; ptr2d [1] [2] = "mk"; ptr2d [1] [3] = "MJ";
ptr2d [2] = ny streng [5];
ptr2d [2] [0] = "II"; ptr2d [2] [1] = "ih"; ptr2d [2] [2] = "ig"; ptr2d [2] [3] = "if";
cout<< ptr2D[2][2] <for (int i = 0; i< 3; ++i)
slett [] ptr2d [i];

slett [] ptr2d;
cout<< ptr2D[1][1] <retur 0;

Overskriftsfilen importeres i begynnelsen av programmet. Standard navneområdet er brukt. Strengpekeren til pekeren er først konstruert inne i hovedfunksjonens kropp. Komponentene i den todimensjonale matrisen er da blitt definert. Elementene er spesifisert av radene og kolonnene. For å få varen på andre rad og andre kolonne i matrisen, bruker vi "cout" -erklæringen.

Vi har brukt 'for' -sløyfen for først å slette radene på matrisen. Loop -variabelen initialiseres, og deretter blir en tilstand brukt på den. Til slutt har vi økt verdien av loopvariabelen. Vi bruker Delete [] -metoden for å eliminere flere enheter. Kommandoen 'Return 0' brukes til å avslutte koden.

For å eliminere den todimensjonale matrisen i det gratis biblioteket, fjerner du først alle radene ved hjelp.

Konklusjon

I denne artikkelen har vi beskrevet forskjellige metoder for å slette 2D -matrisen i C++. Bare la en todimensjonal normal matrise gå utenfor rekkevidde for å slette den. Hvis den todimensjonale matrisen var i gratis lagring, ville den bli eliminert ved hjelp av Delete [] -operatøren for å frigjøre minne i domenet der det er spesifisert. Hvis den todimensjonale matrisen i det gratis biblioteket er konstruert ved hjelp av standardnotasjon, vil slettingen være så enkel som "Slett [] todimensjonalt arrayname.”

Hvis det hadde blitt konstruert som en peker-til-peker, må du fjerne radene først ved å bruke "Slett [] todimensjonalt arrayName [i]" og slett deretter den eksisterende 1-dimensjonale matrisen ved å bruke "Slett [] todimensjonal ArrayName ”.