C ++ STD -Tausch

C ++ STD -Tausch
„Tausch ist der Akt des Austauschs von zwei oder mehr Dingen. Die Daten zwischen zwei Variablen in der Programmierung können umgeschaltet werden. Der Austausch von Dingen zwischen zwei Personen ist im wirklichen Leben möglich. Die Werte von zwei beliebigen Objekten können mit der Standardbibliotheksfunktion SWAP () in C getauscht werden++. Es wurde in C11 unter den "Dienstprogramm" -Header gelegt. Die SWAP () -Funktion in C ++ hat eine Komplexität von n für Arrays, da jedes Element einzeln getauscht werden muss, während die Schwierigkeit der Funktion für Konstanten konstant ist. Die Funktion SWAP () wirft eine Warnung oder einen Fehler aus, wenn eines der variablen Elemente fehlschlagen. Schauen Sie sich die Signatur der Funktion für std :: swap () unten an:

Syntax:

Vorlage < class T > void Swap (T & Variable_1, T & Variable_2);

Sowohl der Wert der ersten Variablen als auch die zweite Variable, die beide Werte speichern, sind ausgetauscht zu werden. Die Funktion wechselt nur die Werte der Variablen. Es hat keine Ausgabe.”

Arbeiten der SWAP () -Funktion in c++

Die Swap -Funktion wird in C ++ unter Verwendung der folgenden drei Zeilen implementiert.

Vorlage void Swap (T & I, T & J)
T temp = std :: move (i);
i = std :: move (j);
j = std :: move (temp);

Die Aussage "t temp = std :: move (i)"; macht eine Kopie von Element "I" und dupliziert es. Hier "i = std :: move (j)"; Verwaltet die Originalartikel von "I" und speichert die "I" -Kopie von "J" anstelle des ursprünglichen "J". Die Formel "j = std :: move (temp)"; Speichern Sie "Ich" mit einem Temperaturklamm und entfernen Sie den identischen Inhalt der Temperatur. Löschen Sie auch die Temp -Variable, nachdem die Funktion SWAP () abgeschlossen ist.

Beispiel 1: Programm mithilfe der STD :: MOVE -Methode zum Swap

Wie unten gezeigt, können wir zwei Objekte mit der C ++ 11 -Funktion STD :: MOVE tauschen.

#enthalten
#enthalten
Vorlage
Hohlraumtausch (T & A, T & B)

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

int main ()

Std :: Vektorliste = 10, 12, 13, 15, 16, 17;
int i = 3, j = 5;
Swap (Liste [i], Liste [j]);
für (int i: list)
std :: Cout<
Rückkehr 0;

Wir haben eine Vorlagenerklärung, die ein Objekt "t" hat. Danach haben wir die Funktion als „Tausch“ festgestellt. Die Funktion nimmt die beiden Parameter & a und & b vom Typ "T" überzeugt. Infolge der Argumente T & A, T & B Referenzierung oder Speichern der Adresse der übergebenen Variablen und der direkten Bewerbung ohne Rückkehr wird der Swap (T & A, T & B) als Referenz als Anruf bezeichnet.

Im Inneren des Hohlraum -Tausch. Dann haben wir das Programm des Programms konstruiert. Hier haben wir die Variable „Liste“ deklariert und sie mit der Liste der numerischen Werte initialisiert. Wir haben die Werte für das "I" und "J" zum Austausch festgelegt. Der im zweite Index befindliche numerische Wert wurde durch den numerischen Wert im fünften Index ersetzt. Dann haben wir die Swap -Funktion angerufen und die Indizes „I“ und „J“ zum Austausch an sie übergeben. Die für Schleife wird zum Drucken der ausgetauschten Liste verwendet.

Die Ausgabe zeigte die modifizierte Liste an. Sie können beobachten, wie die neue Liste generiert wurde, die den Wert gemäß den angegebenen Indizes ausgetauscht hat.

Beispiel 2: Programm mit std :: Swap -Methode zum Swap

Die Verwendung des STD :: Swap -Mechanismus, der im Versorgungskopf (in C ++ 11) gefunden wurde, ist die übliche Lösung. Zwei Werte von Objekten werden umgeschaltet, um es zu funktionieren.

#enthalten
#enthalten
#enthalten
int main ()

std :: vectorarr = 3, 6, 9, 15, 13;
int i = 3, j = 4;
std :: Swap (arr [i], arr [j]);
für (int i: arr)
std :: Cout<
Rückkehr 0;

Durch das Importieren der Header -Datei können wir auf die Swap -Funktion in unserem Programm zugreifen. Hier haben wir die Header -Datei mit zwei weiteren wichtigen Bibliotheken aufgenommen. Dann haben wir die INT -Hauptmethode festgelegt. In der Hauptstufe des Programms haben wir den Vektor erklärt, indem wir die Variable „arrable erstellt haben."Die Variable" arr "wird mit den fünf Elementen der Ganzzahl initialisiert. Die Indexpositionen werden dem "I" und "J" zum Austausch zugeordnet. Die Variablen "I" und "J" werden dann an die STD :: Swap -Methode für den Wert des Wertes des angegebenen Index übergeben. Mit der für Schleife haben wir die ausgetauschten Arrays gedruckt.

Die nach dem Tauschoperation erhaltene Liste mit der STD :: Swap -Methode wird wie folgt angezeigt:

Beispiel 3: Programm mit std :: iter_swap -Methode zum Swap

Die Verwendung des std :: iter_swap -Algorithmus, der im Header für den Algorithmus aufgeführt ist, ist eine zusätzliche Option. Die Art und Weise, wie es funktioniert.

#enthalten
#enthalten
#enthalten
#enthalten
int main ()

std :: vectorVec = 64, 61, 62, 63, 60;
int i = 0, j = 4;
Auto itr1 = std :: Weiter (VEC.begin (), i);
Auto itr2 = std :: Weiter (VEC.begin (), j);
std :: iter_swap (itr1, itr2);
für (int i: vec)
std :: Cout<
Rückkehr 0;

Zur Hauptmethode des Programms haben wir eine Vektorvariable „VEC“ deklariert und ihm eine Vektorliste von Zahlen zugewiesen. Dann haben wir die Indexposition für die Variable "I" und "J" angegeben. Die STD :: iter_swap -Methode wird aufgerufen, die den Iter1 und Iter2 als Argument nimmt. Der ITER1 und ITER2 werden mit dem Auto -Keyword deklariert und haben den Iterationsvorgang. Die For -Loop -Methode druckt die ausgetauschten Werte des Vektorarrays bei der Ausführung.

Die STD :: iter_swap -Methode hat die Werte der angegebenen Vektoren erfolgreich getauscht.

Beispiel 4: Programm der Verwendung ohne temporäre Variablen zum Swap

Dieses Beispiel zeigt eine neue Möglichkeit, Zahlen in C ++ - Code ohne die Verwendung temporärer Variablen auszutauschen.

#enthalten
Verwenden von Namespace 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 <zurück 0;

Lassen Sie uns den Betrieb dieses Programms untersuchen. Hier haben wir X1 und X2 deklariert, die ursprünglich mit der Zahl festgelegt werden. Mit der Formel x1 = x1+ x2 fügen wir dann x1 und x2 hinzu und setzen das Ergebnis in x1 ein. Dies zeigt an, dass x1 gleich 2 plus 12 ist. Daher entspricht jetzt 14. Dann wenden wir die Formel x2 = x1 - x2 an. Dies zeigt an, dass x2 = 14 - 12. Daher ist x2 jetzt gleich 2. Noch einmal wenden wir die Formel x1 = x1 - x2 an. Dies zeigt an, dass x1 = 14 - 2. Daher ist x1 = 12 am Ende. Infolgedessen wurden die Zahlen umgeschaltet.

Die vor und danach ausgetaute Nummer wird auf dem folgenden Eingabeaufbildungsbildschirm angezeigt.

Abschluss

Hier gehen wir eine vollständige Beschreibung von SWAP () in C ++, seine Verwendung und einige Beispiele, die zeigen, wie es funktioniert. Durch die Verwendung der Funktion STD :: SWAP () können zwei Variablenwerte umgeschaltet werden. Die C ++ STL enthält eine eingebaute Funktion namens STD :: SWAP (). Die Funktion "SWAP (T & Variable 1, T & Variable 2)) Aufrufe per Referenz und die C ++ - Überlastung swap (), abhängig von der Art der Datenvariablen, werden in diesem Tutorial ebenfalls erläutert.