C ++ STD Swap

C ++ STD Swap
“Bytting er handlingen med å utveksle to eller flere ting. Dataene mellom to variabler i programmering kan byttes. Utveksling av ting mellom to personer er mulig i det virkelige liv. Eventuelle to objekters verdier kan byttes ved hjelp av standardbibliotekfunksjonsbytte () i C++. Det har blitt plassert under "verktøyet" -overskriften i C11. Swap () -funksjonen i C ++ har en kompleksitet av N for matriser fordi hvert element må byttes individuelt, mens vanskeligheten med funksjonen for konstanter er konstant. Bytting () -funksjonen kaster en advarsel eller feil hvis noen av de variable elementene mislykkes. Se på funksjonens signatur for STD :: SWAP () nedenfor:

Syntaks:

mal < class T > tomrom (t & variabel_1, t & variabel_2);

Både verdien av den første variabelen og den andre variabelen, som begge butikkverdiene, skal byttes ut. Funksjonen bytter bare verdiene til variablene; Det har ingen produksjon.”

Arbeid av bytte () -funksjon i C++

Byttefunksjonen implementeres i C ++ ved å bruke følgende tre linjer.

Mal tomrom (t & i, t & j)
T temp = std :: flytt (i);
i = std :: flytt (j);
j = std :: flytt (temp);

Uttalelsen “T temp = std :: flytt (i)”; lager en kopi av elementet “jeg” og dupliserer den. Her, “i = std :: flytt (j)”; Forkaster de originale elementene til “I” og lagrer “jeg” -kopien av “J” i stedet for den originale “J”. Formelen “j = std :: flytt (temp)”; Lagre “jeg” med en klone av temp, og fjern det identiske innholdet i temp. Slett også temp -variabelen etter at utførelsen av bytting () er fullført er fullført.

Eksempel 1: Program ved hjelp av std :: flyttemetode for å bytte

Som demonstrert nedenfor, kan vi bytte to objekter ved hjelp av C ++ 11 -funksjonen Std :: Flytt.

#inkludere
#inkludere
mal
Void Swap (T&A, T&B)

T temp = std :: flytt (a);
a = std :: flytt (b);
b = std :: flytt (temp);

int main ()

std :: vektorliste = 10, 12, 13, 15, 16, 17;
int i = 3, j = 5;
SWAP (liste [i], liste [j]);
for (int i: liste)
std :: cout<
retur 0;

Vi har en malerklæring som har et objekt “t”. Etter det har vi etablert funksjonen som "bytte". Funksjonen tar de to parametrene og a og b, av type “t”. Som et resultat av argumentene T&A, T&B refererer eller lagrer adressen til den passerte variabelen og bruker direkte på dem uten å komme tilbake, kalles byttingen (T&A, T&B) funksjon.

Inne i tomrombyttet har vi brukt algoritmen for bytte ved å bruke STD :: MOVE -metoden. Deretter konstruerte vi programmets hoved. Her har vi erklært variabelen "listen" og initialisert den med listen over numeriske verdier. Vi har satt verdiene for "jeg" og "j" for å bytte. Den numeriske verdien som ligger ved den andre indeksen ble erstattet med den numeriske verdien ved femte indeks. Deretter kalte vi byttefunksjonen og passerte “jeg” og “j” -indeksene til den for å bytte. For Loop brukes til å skrive ut listen over byttet.

Utgangen viste den modifiserte listen. Du kan observere den nye listen som genereres byttet ut verdien i henhold til spesifiserte indekser.

Eksempel 2: Program ved hjelp av std :: byttemetode for å bytte

Å bruke STD :: Swap -mekanismen som finnes i verktøyet (i C ++ 11) er vanlig løsning. To objekters verdier blir byttet for å få den til å fungere.

#inkludere
#inkludere
#inkludere
int main ()

std :: Vectorarr = 3, 6, 9, 15, 13;
int i = 3, j = 4;
std :: Swap (arr [i], arr [j]);
for (int i: arr)
std :: cout<
retur 0;

Ved å importere overskriftsfilen, kan vi få tilgang til byttefunksjonen i programmet vårt. Her har vi tatt med overskriftsfilen med to viktige biblioteker. Deretter har vi etablert INT -hovedmetoden. Inne i programmets hoved har vi erklært vektoren ved å lage variabelen “ARR.”Variabelen“ ARR ”initialiseres med de fem elementene i heltallet. Indeksposisjonene er tildelt “jeg” og “j” for bytte. Variablene “I” og “J” sendes deretter til STD :: Swap -metoden for bytting av verdien av den spesifiserte indeksen. Med for -loopen har vi skrevet ut de byttede matriserene.

Listen oppnådd etter bytteoperasjonen ved å bruke STD :: SWAP -metoden vises som følger:

Eksempel 3: Program ved hjelp av STD :: ITER_SWAP -metoden for å bytte

Bruk av STD :: ITER_SWAP -algoritmen, som er oppført i overskriften for algoritmen, er et tilleggsalternativ. Måten den fungerer på er ved å bytte verdiene til objektene som de medfølgende iteratorene peker på.

#inkludere
#inkludere
#inkludere
#inkludere
int main ()

std :: VectorVec = 64, 61, 62, 63, 60;
int i = 0, j = 4;
Auto ITR1 = std :: Neste (VEC.begynn (), i);
auto itr2 = std :: neste (vec.begynn (), j);
STD :: ITER_SWAP (ITR1, ITR2);
for (int i: vec)
std :: cout<
retur 0;

Til programmets hovedmetode har vi erklært en vektorvariabel “VEC” og tildelt den en vektorliste med tall. Deretter spesifiserte vi indeksposisjonen til variabelen “I” og “J”. STD :: ITER_SWAP -metoden påberopes som tar ITER1 og ITER2 som et argument. ITER1 og ITER2 er erklært med auto -nøkkelordet og har iterasjonsoperasjonen. For Loop -metoden skriver ut de byttede verdiene til vektorarrayen ved utførelse.

STD :: ITER_SWAP -metoden byttet vellykket verdiene til de spesifiserte vektorene.

Eksempel 4: Program for å bruke uten midlertidige variabler for å bytte

Dette eksemplet viser en ny måte å bytte tall i C ++ -kode uten bruk av midlertidige variabler.

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

int x1 = 2, x2 = 12;
cout<< "Before swapping." <cout<< "x1 = " << x1 << ", x2 = " << x2 <x1 = x1 + x2;
x2 = x1 - x2;
x1 = x1 * x2;
cout<< "\nAfter swapping." <cout<< "x1 = " << x1 << ", x2 = " << x2 <return 0;

La oss undersøke driften av dette programmet. Her har vi erklært X1 og X2, som opprinnelig er satt med henholdsvis nummeret. Deretter ved å bruke formelen X1 = x1+ x2, legger vi til x1 og x2 og setter resultatet i x1. Dette indikerer at X1 er lik 2 pluss 12. Derfor tilsvarer nå 14. Deretter bruker vi formelen x2 = x1 - x2. Dette indikerer at x2 = 14 - 12. Derfor er x2 nå lik 2. Nok en gang bruker vi formelen X1 = x1 - x2. Dette indikerer at x1 = 14 - 2. Derfor x1 = 12 på slutten. Som et resultat har tallene blitt byttet.

Antallet byttet før og etter vises på følgende hurtigskjerm.

Konklusjon

Her går vi over en full beskrivelse av bytte () i C ++, bruken av den og noen eksempler som viser hvordan det fungerer. Ved å bruke STD :: SWAP () -funksjonen, kan to variablers verdier byttes. C ++ STL inkluderer en innebygd funksjon som heter STD :: Swap (). Byttingen (T & Variable 1, T & Variable 2) funksjonsanrop som referanse, og C ++ overbelastningsbytte (), avhengig av type datavariabler, er også forklart i denne opplæringen.