Strukturbindung in C++

Strukturbindung In C



Mit der Strukturbindung können Sie die Elemente aus einer Struktur oder Klasse extrahieren und sie verschiedenen Variablen zuweisen, ohne auf jedes Mitglied einzeln zugreifen zu müssen. Strukturbindung wird verwendet, um die Notwendigkeit einer manuellen Elementextraktion zu eliminieren und die Lesbarkeit und Prägnanz von Code zu verbessern, indem das gleichzeitige Entpacken zahlreicher Elemente einer Struktur oder Klasse in verschiedene Variablen ermöglicht wird. In diesem Tutorial besprechen wir die Funktionsweise, Syntax und Beispiele der Strukturbindung in C++.

Was ist strukturierte Bindung in C++?

Strukturbindung ist eine C++-Funktion, die in C++17 hinzugefügt wurde und auch die Zerlegung einer Struktur oder eines Tupels in einzelne Variablen ermöglicht, wodurch der Code prägnanter wird. Es kann verwendet werden, um die Syntax für den Zugriff auf Strukturmitglieder zu vereinfachen und die Möglichkeit von Fehlern durch Tippfehler oder falsche Indizierung zu verringern.

Syntax







Die Syntax der Strukturbindung in C++ lautet wie folgt:



Auto [ var1 , var2 , ... ] = Ausdruck ;

In der Syntax für die Strukturbindung in C++ sind „var1“ und „var2“ Variablennamen und „Ausdruck“ ein Ausdruck, der eine Struktur oder Klasse ergibt. Wir verwenden Auto-Schlüsselwörter, um Variablen zu deklarieren, die automatisch erstellt werden.



Modifikatoren

Modifikatoren können in Kombination mit strukturierten Bindungen verwendet werden. Ihre Syntax ist unten aufgeführt:





Auto & [ A , B , C , ... ] = Ausdruck ;

Auto && [ A , B , C , ... ] = Ausdruck ;

Der in der Deklaration verwendete Operator „&“ oder „&&“ definiert, ob es sich bei der Bindung um eine L-Wert- oder R-Wert-Referenz handelt. Eine durch „&“ dargestellte Wertreferenz stellt eine Referenz her, die zum Ändern der Werte der Bindungsvariablen verwendet werden kann. Änderungen an den Werten, die mithilfe der Referenz vorgenommen werden, werden in der ursprünglichen Struktur oder dem ursprünglichen Tupel angezeigt.

Die durch „&&“ dargestellte R-Wert-Referenz stellt dagegen eine Referenz dar, die nur zum Lesen des Werts der in der Bindung enthaltenen Variablen verwendet werden kann. Es ist praktisch für die Bindung an transiente Objekte oder R-Werte, die zerstört werden müssen, da es die Erstellung einer Replik des Objekts vermeidet, was speicher- und zeitaufwändig sein kann.



Beispiel 1: Strukturbindung in C++

Das Folgende ist ein Beispiel für die C++-Strukturbindung:

#include

Verwenden des Namensraums std ;

Struktur Würfel

{

int X ;

int Und ;

int Mit ;

} ;

int hauptsächlich ( )

{

C-Würfel = { 10 , zwanzig , 30 } ;

Auto [ x_koordinate , y_koordinate , z_koordinate ] = C ;

cout << „X-Achse:“ << x_koordinate << endl ;

cout << „Y-Achse:“ << y_koordinate << endl ;

cout << 'Z-Achse : ' << z_koordinate << endl ;

zurückkehren 0 ;

}

Im obigen Beispiel deklarieren wir einen Strukturwürfel mit drei ganzen Zahlen x, y und z. Die Struktur zeigt einen Würfel im Raum. Eine Variable c vom Typ Cube wird erstellt und mit den Werten (10,20,30) initialisiert. In dieser Codestruktur weist die Bindung Werte der Mitglieder x, y und z der Struktur den einzelnen Variablen x_coordinate, y_coordinate, z_coordinate zu, indem die Syntax auto[ x_coordinate, y_coordinate, z_coordinate ] = c verwendet wird. Die Ausgabe des oben Gesagten ist unten dargestellt:

Beispiel 2: Strukturbindung in C++ zum Entpacken einer Struktur

Im Folgenden finden Sie ein Beispiel für die Strukturbindung beim Entpacken einer Struktur:

#include

#include

Verwenden des Namensraums std ;

Struktur Student {

String-Name ;

int Alter ;

} ;

int hauptsächlich ( ) {

Studenten { „Hamza“ , 32 } ;

Auto [ Name , Alter ] = S ;

cout << Name << ' Ist ' << Alter << „Jahre alt.“ << endl ;

zurückkehren 0 ;

}

Im obigen Code hat eine Student-Struktur zwei Mitglieder: a Name das ist eine Zeichenfolge und ein Alter das ist eine ganze Zahl. Anschließend erstellen wir das Student-Objekt und weisen jedem seiner Mitglieder Anfangswerte zu. Die Mitglieder von s werden dann mithilfe der strukturellen Bindung in den Namen und das Alter der Variablen unterteilt, und diese Werte werden dann wie im folgenden Screenshot gedruckt:

Beispiel 3: Strukturbindung in C++ mit Modifikatoren

Unten sehen Sie ein Beispiel für eine Strukturbindung, die einen Modifikator verwendet, um den Wert einer Variablen als num1 und num2 zu aktualisieren:

#include

#include

Verwenden des Namensraums std ;

int hauptsächlich ( ) {

Tupel < int , int > T { 25 , zwanzig } ;

Auto & [ num1 , num2 ] = T ;

cout << „Der Wert von num1 =“ << num1 << ', num2 = ' << num2 << ' \N ' ;

num1 = 30 ;

cout << „Der geänderte Wert von num1 =“ << num1 << ', num2 = ' << num2 <<

' \N ' ;

Auto && [ Nummer 3 , num4 ] = make_tuple ( 100 , 250 ) ;

cout << „Jetzt ist der Wert von num3 =“ << Nummer 3 << ', num4 = ' << num4 << ' \N ' ;

zurückkehren 0 ;

}

Im vorherigen Code erstellen wir ein Tupel t und verwenden die lvalue-Referenz, um seine Komponenten mit num1 und num2 zu verknüpfen. Anschließend ändern wir den Wert von num1 auf 30 und geben die Werte num1 und num2 aus. Erstellen Sie außerdem über make_tuple(100, 250) ein temporäres Tupel und verwenden Sie eine R-Wert-Referenz, um seine Elemente an num3 und num4 zu binden. Die Werte von num3 und num4 werden dann gedruckt, da num3 und num4 mit einer R-Wert-Referenz gekoppelt sind und nicht zum Ändern des durch make_tuple(100, 250) gebildeten temporären Tupels verwendet werden können. Sie sind nur in der Lage, daraus zu lesen. Wenn Sie das Programm ausführen, wird das folgende Ergebnis auf dem Bildschirm angezeigt:

Abschluss

Strukturbindung ist eine Funktion in C++, die mehrere Werte einer Struktur oder Klasse in einzelne Variablen in einem einzigen Ausdruck entpackt, was zu prägnanterem, lesbarerem und sichererem Code führt. Die Strukturbindung mithilfe von Modifikatoren optimiert den Prozess der Werteänderung innerhalb strukturierter Objekte.