Hva er et dynamisk utvalg?
En dynamisk matrise er identisk med en standard matrise i utseende, men størrelsen kan endres mens koden kjører. Dynamiske array -komponenter tar opp en sammenhengende minneblokk. Etter at en matrise er definert, er det ikke mulig å endre størrelsen. I kontrast er en dynamisk matrise ikke som en statisk matrise. Selv etter at det er okkupert, kan en dynamisk matrise utvide størrelsen. Elementer kan legges kontinuerlig til den dynamiske matriserens sluttposisjon ved å bruke det reserverte rommet til det er helt okkupert.
Nøkkelfaktorer for dynamisk matrise i C ++:
Ytelsen til matrisen bestemmes av startstørrelse og vekstfaktor. Legg merke til følgende punkter:
Eksempel 1:
Det nye nøkkelordet brukes til å bygge et dynamisk utvalg i følgende C ++ -program. Etter det returnerer nøkkelordet en referanse til det første elementet. Header -delen har den inkluderte iostream -bibliotekfilen for å bruke metodene. Navnetfilen er også inkludert som gjør det mulig å bruke klassen uten å bli kalt. Deretter påberopes hovedfunksjonen der vi har erklært to variabler “P” og “Num” av heltalldatatype.
I neste trinn skriver cout -setningen ut uttalelsen "Angi tallene". CIN -kommandoen tar innspill fra brukeren og tildeler den til variabelen “Num”. Neste trinn har pekervariabelen “Array” som holder heltallverdiene til variabelen “Num”. Brukerens innlisede nummer vil bli skrevet ut ved hjelp av COUT -kommandoen. Da har vi for sløyfetilstand som itererer over hvert element som er lagt inn av brukeren. Arrayen som "matrise" er erklært i CIN -kommandoen som leser inndata som er lagt inn av brukeren.
Etter avslutningen av sløyfen vil uttalelsen “Dine tall” skrives ut på konsollskjermen. Igjen, vi har en for sløyfetilstand Men denne gangen dette for sløyfetilstand itererer over en rekke elementer. Merk at vi har tillatt en bruker å angi arraystørrelse. Som et resultat er matrisens størrelse definert ved kjøretid.
#inkludereBrukeren blir bedt om å legge inn nummeret i konsollprompt. Etter inngang viser nummeret for array -størrelse antall spesifiserte matrisestørrelser. Den resulterende matrisen vises på konsollpromptet til Ubuntu.
Eksempel 2:
En initialiseringsliste kan brukes til å angi en dynamisk matrise. La oss illustrere dette med et eksempel for å se hvordan dette fungerer. Først la vi til IOSTREAM -filen og STD -navnefilen i overskriftsdelen. Etter det påkalte vi hovedfunksjonen. Logikken til programmet skal inkluderes i funksjonens kropp. Da har vi definert en variabel som "A" av heltalldatatype.
Etter å ha erklært heltallvariabelen, har vi en dynamisk array -erklæring som "ARR" som bruker en initializer -liste. Vi har fire heltalloppføringer i matrisen. COUT -kommandoen vil skrive ut uttalelsen “Elements of Array” før du viser matriseelementene.
I neste trinn har vi det A for sløyfe som itererer over elementer som er til stede i en spesifisert matrise. Gjennom cout -kommandoen vil elementene i den gitte matrisen bli skrevet ut på konsollprompt.
#inkludereFølgende er resultatet vi fikk fra utførelsen av programmet ovenfor:
Eksempel 3:
Når målet med den dynamiske matrisen er oppnådd, bør den fjernes fra datamaskinminnet. Slettuttrykket kan brukes til å gjøre dette at minneområdet er gratis og brukes til å lagre tilleggsdata. Vi må bruke Delete [] for å fjerne den dynamiske matrisen fra minnet om systemet. Den firkantede braketten [] med nøkkelordet sletter kommandoer CPU for å fjerne mange variabler i stedet for bare en.
La oss begynne implementeringen av programmet. Vi har importert den nødvendige filen i overskriftsdelen. Deretter kalles hovedfunksjonen. Heltallvariablene “jeg” og “nei” er erklært i hovedfunksjonen. Etter å ha definert disse variablene, har vi COUT -setningen "inngangsnummer" som er for brukeren å oppgi nummeret. Vi får et nummer fra brukeren og lagrer det i variabelen “Nei” ved hjelp av CIN -kommandoen.
Deretter erklærer en pekervariabel “Myarr” som lagrer heltallene i minnet. Nummeret som er lagt inn av brukeren vil bli skrevet ut i den andre cout -kommandoen til dette programmet. De for sløyfe Uttalelse brukes for iterasjonen over den angitte brukeren. Til slutt har vi konstruert Delete [] -erklæringen som sletter matrisen gitt i programmet og frigjør plass i minnet.
#inkludereVed utførelse av programmet fikk vi følgende utdata. Når programmet avsluttes, blir matrisen slettet.
Eksempel 4:
Vi kan definere en pekerutvalg av størrelse “x” dynamisk og deretter tildele minne om størrelse “y” dynamisk for hver rad ass sett i følgende eksempel. Til å begynne med har vi definert matrisen i overskriftsdelen. I neste trinn har vi hovedfunksjonen der vi har en pekervariabel “ARR”. Pekervariabelen inneholder en rekke størrelse “x”.
Nå, den for sløyfeuttalelse tildeler hver rad en minnestørrelse “y”. Deretter har vi en nestet sløyfe for dynamisk å tildele verdier til et minne som er tilsatt. RAND -funksjonen vil generere et tilfeldig tall for 2D -matrisen. I den neste nestede sløyfen har vi skrevet ut 2D -matrisen gjennom STD :: cout -uttalelsen. Etter programmets avslutning vil den spesifiserte 2D -arrayen bli slettet fra det tildelte minneområdet, da vi har brukt slett [] til slutt.
#inkludere2D -matrisen er generert og vist på konsollskjermen nedenfor.
Konklusjon
Det handler om den endrede matrisen i C++. Vi ble kjent med at C ++ matriser ikke har en innebygd metode for å endre størrelse på størrelse. Men gjennom den dynamiske array -tildelingen i C ++ kan matrisstørrelsen modifiseres. Vi har illustrert i eksemplet for å endre størrelsen på den dynamiske matrisen ved hjelp av et nytt nøkkelord. Vi kan også bruke en initializer -liste for å initialisere en matrise. Etter å ha endret størrelse kan vi også frigjøre plass i minnet ved å bruke sletting []. Denne artikkelen vil vise deg hvordan du kan endre størrelse på en matrise i C++.