Dynamisk char array c ++

Dynamisk char array c ++
En dynamisk matrise er sammenlignbar med en standard matrise, bortsett fra at størrelsen kan endres mens programmet kjører. Medlemmene av en dynamisk gruppe tar opp en enkelt minnebuffer, når den er fullført, kan en dynamisk matrise vokse eksponentielt. Spesifisert cache -minne blir tildelt en matrise når den opprettes. Et dynamisk utvalg, derimot, utvider minnekapasiteten med et spesifikt kriterium når det er påkrevd. Vi bruker et dynamisk utvalg når vi trenger å vurdere størrelsen ved kjøretid. I denne artikkelen, la oss diskutere detaljene i den dynamiske karakteroppstillingen i C++.

Bruk den nye () operatøren:

Den nye operatøren gir dynamisk objektet på hovedminnet og vender en peker til den. En karaktergruppe er erklært i dette påfølgende programmet. Etter det, i A for sløyfe, Vi fordeler effektivt char -matrisen og spesifiserer passende data til komponentene.

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

int i, a;
cout<< "Enter the number of values:" a;
int *arr = ny int (a);
cout<< "Enter " << a << " values" <for (i = 0; i> arr [i];

cout<< "You entered: ";
for (i = 0; i< a; i++)

cout<
retur 0;

Her skal vi integrere overskriftsfilen for å bruke funksjonalitetene. For å bruke klassene i programmet uten å erklære det, har vi brukt et standard navneområde. Hovedfunksjonen () blir kalt i neste trinn.

Først erklærer vi to variabler 'I' og 'A'. Vi bruker "cout" -erklæringen for å skrive ut linjen på skjermen slik at brukeren legger inn mengden tall han ønsker å skaffe seg. Deretter tildeles denne verdien til variabelen 'a'. Nå skaffer vi oss en matrise som inneholder verdien av 'A' -variabelen og deretter tilordne dette til en peker i matrisen. Nok en gang brukes 'cout' -kommando for å tillate brukeren å oppgi tilfeldige tall.

For sløyfe utføres som initialiserer en løkkevariabel 'I' for å rekapitulere tallene som er lagt inn av brukeren. Tallene i matrisen 'arr' vises nå. Ved vellykket utførelse vil programmet returnere verdien. Hovedfunksjonens kropps kropp er kommet til en slutt.

Bruk en initializer -liste:

Det er enkelt å sette en dynamisk karakteroppstilling til 0. Lengden indikerer antall elementer som skal settes inn i matrisen i denne metodikken. Matrisen blir tomme fordi vi må spesifisere karakteroppstillingen til null. En initializerliste vil bli brukt til å lage en dynamisk karakteroppstilling. Ta en titt på et eksempel.

#inkludere
ved hjelp av navneområdet STD;
Int Main (Void)

int j;
int *array new int [8] 1, 14, 9, 0, 33, 5, 28, 6;
cout<< "Elements of the array: " <for (j = 0; j < 8; j++)

cout<< array[j] <
return 0;

Først inkluderer vi overskriftsfilen for inngangs- og utgangsfunksjoner. Standard navneområdet brukes også slik at vi får tilgang til klassene uten å måtte kalle det. Vi bruker hovedfunksjonen (). Inne i kroppen av denne funksjonen initialiseres variabelen 'J'. Deretter erklærer vi en matrise med en liste. Datatypen til denne matrisen er et heltall. Matrisen inneholder 8 numeriske heltall. Vi ønsker å skrive ut linjen 'Elements of the Array' på skjermen, slik at vi bruker "cout" -uttalelsen. Kommandoen 'endl' viser slutten av linjen. Det flytter bare utgangen til neste linje.

Vi bruker 'for' -sløyfen. Innenfor 'for' sløyfen initialiserer vi bare en loopvariabel 'J', så spesifiserer vi betingelsen om at verdien av variabelen 'J' må være mindre enn 8. I den siste delen øker vi verdien av sløyfen. For å vise elementene i den definerte matrisen på skjermen, brukes 'cout' uttalelse. Utenfor 'for' sløyfen går vi inn i kommandoen 'Return 0' for å avslutte programmet.

Bruk Std :: Unique_PTR -metoden:

STD :: Unique_PTR -pekeren er en annen tilnærming for å lage en dynamisk karakter -arrayand og det letter et sikkert minnetallokeringsgrensesnitt. Varen som de unike_ptr -funksjonspunktene må eies av operasjonen; Men hvis pekeren går ut av området, blir elementet kastet. I motsetning til konvensjonelle pekere, krever ikke den smarte pekeren en programmerer for å utføre slettoperatøren; snarere kalles det implisitt når elementet elimineres.

#inkludere
#inkludere
bruker std :: cout;
bruker std :: endl;
constExpr int s = 11;
statisk const char chars [] =
'Informasjon' ;
int main ()

std :: unik_ptrarr (ny char [s]);
for (int k = 0; k < s; ++k)

arr [k] = chars [k];
cout<
cout<return exit_success;

I begynnelsen av programmet introduserer vi to nødvendige biblioteker: og . For å bruke utgangsfunksjonene bruker vi standard 'cout'. Sammen med dette har vi brukt 'endl' som viser slutten av linjen. Det flytter bare markøren til den påfølgende linjen. Størrelsen på matrisen er spesifisert her ved å bruke en heltalldatatype.

I neste trinn erklærer vi den statiske konstante karakteroppstillingen for å definere elementene. Vi påkaller main () -funksjonen. Og for minnetildelingen bruker vi std :: unik_ptr i funksjonen til funksjonen. Vi konstruerer en loopvariabel 'k' innenfor for loop for å gå over verdiene til den definerte matrisen. Deretter kan du hente de definerte verdiene til matrisen og lagre dem i variabelen 'arr'. For å vise karakterene som er inneholdt i 'arr', blir "cout" -uttalelsen brukt. For å oppnå, kan koden returnere verdien. I det siste trinnet bruker vi 'return exit_success' for å avslutte koden.

Konklusjon:

I denne artikkelen har vi snakket om Dynamic Character -matrisen og forskjellige metodologier for å fordele karaktergruppene i C++. Disse teknikkene inkluderer bruk av en ny () operatør, initializer -liste og std :: unike_ptr -metode. Vi bruker en dynamisk matrise når vi trenger å bestemme størrelsen på karakteroppstillingen til kjøretid. Lengden på en dynamisk karakteroppstilling bestemmes i hele tildelingen.