C ++ stdcopy

C ++ stdcopy
"Når kilden til start- og sluttposisjoner er spesifisert, vil alle elementene i dette området bli kopiert til den spesifiserte destinasjonen. C ++ STL gir flere kopieringsvarianter som lar kopieringsoperasjoner utføres på forskjellige måter, hver med en unik bruk. Alle disse er beskrevet i algoritmen. Disse funksjonene er forklart i denne artikkelen for bruk i regelmessig programmering.”

Eksempel 1: Bruke kopi () og copy_n () -metoden

Kopi (start_iter1, end_iter1, start_iter2):Den generelle kopienfunksjonen, Copy (Strat_iter1, End_iter, start_iter2), brukes til å flytte en klynge fra en beholder til en annen. Den trenger tre argumenter:

Start ITER1: Utgangspunktet for kopieringselementer er indikert av pekeren Start Iter, som peker på begynnelsen av kildebeholderen.

END ITER: Pekingsenheten til kildebeholderens ende, hvorav elementer må kopieres.

Start ITER2: Henvisningen til starten av målbeholderen, hvorav elementer må kopieres.

copy_n (start_iter1, num, start_iter2): Antall komponenter som må kopieres i målbeholderen kan bestemmes ved hjelp av denne kopimetoden. I tillegg aksepterer den følgende tre argumenter:

Start ITER1: Identifikatoren for starten av kildebeholderen, hvorav elementer må kopieres.

NUM: Et heltall som indikerer antall tall som skal overføres til destinasjonsbeholderen, og starter med Start ITER1. Når et negativt tall er gitt, skjer ingenting.

Start ITER2: Destinasjonsbeholderens utgangspunkt, identifisert av adressen Start ITER, er der varene må begynne å kopiere.

Koden for denne illustrasjonen er vedlagt i det pålagte skjermbildet.

I eksemplet her har vi inkludert tre hovedbiblioteker av C++. Denne bibliotekalgoritmen spiller en viktig rolle i dette programmet, da den gir tilgang til STD :: Copy -funksjonen. Deretter brukte vi navneområdet STD i programmet. Bruk av navneområdet erklæring indikerer ganske enkelt at alle objekter i STD -navneområdet skal være tilgjengelige i omfanget der det er til stede uten å kreve STD :: prefiks.

Etter det har vi en hovedmetode for programmet som vi har erklært en variabel "VEC_1" av en vektorklasse og initialisert den med settet med numeriske verdier. Vi har også definert ytterligere to variabler som "VEC_2" og "VEC_3". Vi har erklært disse variablene med destinasjonsvektorene. Deretter distribuerte vi Copy () -metoden, som tar tre argumenter “VEC_1.Begynn ”,“ VECT_1.slutt ", og“ VECT_2.Begynn ”å kopiere de to første verdiene til vektorene.

For å skrive ut de kopierte vektorene, benyttet vi oss av for -loopen, som syklet over hvert kopiert vektorelement og viste vektorelementene. Deretter har vi brukt copy_n () -metoden, som vil vise de fem første elementene i vektorene. For utskrift brukes de kopierte vektorelementene for sløyfe som ovenfor.

Utgangen generert av Copy () og copy_n () -metoden er som følger:

Eksempel 2: Bruke copy_if () og copy_backward () -metoden

copy_if (): Som underforstått av navnet, kopierer denne funksjonen i samsvar med utfallet av en "tilstand.”Dette er gitt ved hjelp av en funksjon som leverer en boolsk verdi som det fjerde argumentet. Denne funksjonen krever fire argumenter, hvorav tre er identiske med de som er i kopi () og en ekstra funksjon som, hvis den kommer tilbake, avgjør om et tall er duplisert eller ikke.

copy_backward (): Når du bruker denne funksjonen, kopieres elementer i målbeholderen bakover til alle tallene ikke er kopiert. Start_iter2 er der kopieringsprosessen begynner, men den fortsetter bakover. Den bruker de samme forsvarene som en kopi () også.

Koden for denne illustrasjonen er vedlagt i det pålagte skjermbildet.

I det første trinnet i dette programmet har vi satt inn bibliotekene våre for å hente C ++ -funksjonene. Deretter erklærer vi vektoren som V1 og initialiserer vektoren med heltalene. Vi har erklært andre variabler som V2 og V3, som er destinasjonsvektorene. Etter det har vi copy_if () -funksjonen som bare kopierer de odde tallene fra vektorene. Deretter brukes kopien bakover () til å kopiere de tre første elementene, med fjerde sluttposisjon. Vi har skrevet ut de kopierte vektorelementene ved hjelp av for loop.

Utgangen generert av Copy_if () og copy_backward () -metoden er som følger:

Eksempel 3: Bruke instater () -metode

La oss forstå innsatsen () syntaks før vi utfører kopien () handlingen.

# COPY (Strat_ITTER1, END_ITER1, INSERTER (Container & X, TypeName Container :: Iterator IT));

Vi bruker innsats () som destinasjonen vi ønsker å overføre beholderens elementer. Innsatsen () trenger to innganger. Den første er en vilkårlig type beholder, mens den andre er en iterator inne i beholderen.

Det gir tilbake en forekomst av INSERT Iterator som for tiden fungerer med alle slags container. Ved hjelp av denne innpakningsfunksjonen kan du sette inn iteratorforekomster som kan opprettes. Det kan være vanskelig og hindre generisk programmering fra å måtte vite den nøyaktige typen av beholderen når du skriver navnet på den prosentvise iteratoren. Ved å bruke denne funksjonen, kan du dra nytte av automatisk malparameterfradrag og la kompilatoren automatisk samsvare med de riktige typene for deg.

Koden for denne illustrasjonen er vedlagt i det pålagte skjermbildet.

Her har vi startet med hovedmetoden vår. Inne i den har vi erklært vektoren V1 og satt vektorene med de numeriske verdiene. Fra C ++ iterator har vi opprettet objektet “ITR”. Vi har også erklært en annen variabel, V2, i vårt program. Deretter påkalte vi innsatsen () inne i kopifunksjonen, som kopierer vektorelementene gjennom iterasjon. Til slutt har vi for -loopen, som vil trykke de kopierte elementene i de spesifiserte vektorene.

Utgangen som genereres av INSERTER () -metoden er som følger:

Konklusjon

I artikkelen har vi diskutert STD :: kopifunksjoner som C ++ støtter. Fire metoder demonstreres med syntaks og eksempelprogrammet. Parametrene og funksjonene til hver tilnærming er forskjellige. Disse teknikkene er tilgjengelige i overskriftsfilen for algoritmen.