Stdmove i C ++

Stdmove i C ++

Akkurat som mange andre C ++ -funksjoner, er STD :: Move () -funksjonen unik i sin funksjonalitet. Som navnet antyder, har det blitt brukt til å flytte verdien av en variabel til en annen mens du sletter verdien av den første variabelen. Det kan brukes med eller uten Push_back () -funksjonen til vektorbiblioteket. Så la oss starte artikkelen for å se om den fungerer. Opprett en ny C ++ -fil og åpne den.

Eksempel 01:

La oss starte med det første eksemplet. De viktigste overskriftsfilene for denne koden er lagt til, i.e., iostream, vektor, streng og verktøy. Vi må legge til standard navneområdet “STD.”Så to variabler av strengtype, S1 og S2, initialiseres i hovedfunksjonen (). Her kommer vektortypen iterator “V” av en strengtype. Iteratoren “V” -objekt brukes til å bruke Push_back () -funksjonen på S1. Dette betyr at den variable S1 -verdien er presset til vektorens siste plassering. Ettersom vektoren er tom, vil den først settes inn. Her kommer “std :: flytt ()” for å la oss ikke opprette et annet vektorobjekt for å tilføre verdi til det. Så bruker Push_back () -funksjonen “STD :: MOVE ()” -funksjonen i den for å flytte S2 -strengen til en vektor “V” på sitt siste sted. COUT -uttalelsen er her for å gi oss beskjed om den resulterende vektoren. "For" -sløyfen brukes til å få verdiene fra vektoren som en liste og vise dem på terminalen via "cout" -klausulen. Koden ender her. Lagre den og lukk filen for å komme videre.

inkludere
#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
String S1 = "Hei";
String S2 = "World";
vektorv;
v.push_back (S1);
v.push_back (std :: flytt (S2));
cout << "Overall Vector:";
for (String & x: v)
cout << " << x << '\n';
retur 0;

Koden må utarbeides før utførelsen for å løse enhver feil. Derfor har G ++ -kompilatoren blitt brukt så langt. “./en.ut ”evig instruksjon er her for å utføre vår C ++ -kode. Du kan se at resultatet viser vektoren til to strenger.

Eksempel 02:

La oss se på et annet eksempel på å bruke STD :: MOVE () i C ++ på en enkleste måte som mulig. Koden startes med de samme topptekstbibliotekene, i.e., iostream, vektor, streng og verktøy. Etter det er standard “STD” navneområde nødvendig for å unngå å bruke "STD" -tnøkkelordet igjen og igjen i koden. Main () -funksjonen startes med initialiseringen av en strengvariabel “S” med en strengverdi. Vektoren “VEC” av strengtype er erklært som tom. Ettersom det bare er 1 streng, vil den resulterende vektoren bli konstruert med denne enkeltvariabelen. Så, Push_back () -funksjonen kalles ved hjelp av vektorobjektet “VEC.”Denne funksjonen kopierer strengen
“S” som skal plasseres på det siste stedet for en vektor “VEC.”Det sletter ikke verdien av" S "-variabelen. COUT -setningen viser verdien av streng “S” på skallet etter bruk av Push_back () -funksjonen. Igjen flyttes den samme verdien til den siste plasseringen av en vektor som bruker "Move" -funksjonen innenfor "Push_back ()" -metoden. COUT -uttalelsen vil vise verdien av “S” etter å ha brukt “Move” -metoden. I det siste brukes cout -klausulen for å vise den resulterende vektorens "VEC" -verdier på skallet.

#inkludere
#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
Streng S = "Linux";
vektorVEC;
Vec.push_back (er);
cout << "After Copy String: " << s << endl;
Vec.push_back (flytt (er));
cout << "After Move String: " << s << endl;
cout<<"Vector Elements: "<retur 0;

Koden er utført. For det første viser den verdien av "S" etter å ha kopiert den til vektoren “VEC.”Etter å ha brukt et trekk (), ble“ S ”-variabelen tom. I det siste er vektorverdien blitt vist.

Eksempel 03:

La oss ha et siste, men ikke minst eksempel på trekk (). Et enkelt bibliotek og standard navneområde er inkludert. Hoved () -funksjonen startes med initialiseringen av to heltalltypevektorer, V1 og V2, med et eller annet område. Den første cout -uttalelsen viser at vi vil vise verdien av den første vektoren V1. "For" -sløyfen er her for å iterere verdiene til den første vektoren V1 fra startposisjonen til slutt ved å bruke "størrelse" -funksjonen i den. På hver iterasjon viser den hver verdi fra vektoren. Det samme er gjort for vektor v2 for å vise heltallverdiene gjennom "for" -sløyfen.

STD :: MOVE () -funksjonen bruker begynnelsen () -funksjonen i den. Den første parameteren, v1.Begynn () viser startverdien fra vektor v1 som skal plasseres i vektoren V2. Den andre parameteren, “V1.Begynn () + 4, ”viser den siste plasseringen av V1, som vi kan legge opp i vektoren V2. Den tredje parameteren, “V2.Begynn () + 1, ”viser utgangspunktet for vektoren V2 der vi må legge til eller erstatte verdiene. Den siste "for" -sløyfen er her for å iterere den nylig oppdaterte vektoren V2 og vise den på skallet.

#inkludere
ved hjelp av navneområdet STD;
int main ()
vektorv1 2, 4, 6, 8, 10;
vektorv2 0, 0, 0, 0, 0;
cout <<"Vector 1: ";
for (int i = 0; icout << " " << v1[i];
cout << endl;
cout <<"Vector 2: ";
for (int i = 0; icout << " " << v2[i];
cout << endl;
std :: flytt (v1.Begynn (), V1.Begynn () + 4, v2.begynn () + 1);
cout <<"Vector 2 After move: ";
for (int i = 0; icout << " " << v2[i];
cout << endl;
retur 0;

Ved utførelse vises begge vektorene separat. Etter det viser den oppdaterte vektoren V2 de fire siste verdiene oppdatert.

Konklusjon:

Denne artikkelen forklarer eksempler på STD :: MOVE () -funksjonen i C++. Vi har brukt Push_back () -funksjonen for å utdype tydeligere i kodene våre. Vi har dekket konseptet med vektorer i kodene våre for å bruke flyttingsfunksjonen.