Wiązanie struktur w C++

Wiazanie Struktur W C



Powiązanie struktury umożliwia wyodrębnienie elementów ze struktury lub klasy i przypisanie ich do różnych zmiennych bez konieczności uzyskiwania dostępu do każdego elementu członkowskiego z osobna. Powiązanie struktury jest stosowane w celu wyeliminowania konieczności ręcznego wyodrębniania elementów oraz poprawia czytelność i zwięzłość kodu, umożliwiając jednoczesne rozpakowywanie wielu elementów struktury lub klasy do odrębnych zmiennych. W tym samouczku omówimy działanie, składnię i przykłady powiązań struktur w C++.

Co to jest wiązanie strukturalne w C++?

Powiązanie struktury to funkcja C++ dodana w C++17, która umożliwia również dekompozycję struktury lub krotki na poszczególne zmienne, poprawiając zwięzłość kodu. Można go użyć do uproszczenia składni dostępu do elementu członkowskiego struktury i zmniejszenia możliwości wystąpienia błędów spowodowanych literówkami lub nieprawidłowym indeksowaniem.

Składnia







Składnia wiązania struktury w C++ jest następująca:



automatyczny [ var1 , var2 , ... ] = wyrażenie ;

W składni wiązania struktury w C++, gdzie „var1” i „var2” to nazwy zmiennych, a „expression” to wyrażenie, które zwraca strukturę lub klasę. Używamy słów kluczowych auto do deklarowania zmiennych, które są tworzone automatycznie.



Modyfikatory

Modyfikatory mogą być używane w parowaniu z powiązaniami strukturalnymi. Ich składnia jest wymieniona poniżej:





automatyczny & [ A , B , C , ... ] = wyrażenie ;

automatyczny && [ A , B , C , ... ] = wyrażenie ;

Operator „&” lub „&&” użyty w deklaracji określa, czy powiązanie jest odwołaniem do l-wartości, czy r-wartości. Odniesienie do lwartości reprezentowane przez „&” ustanawia odniesienie, którego można użyć do zmiany wartości zmiennych wiążących. Zmiany wartości dokonane przy użyciu referencji będą widoczne w oryginalnej strukturze lub krotce.

Z drugiej strony odwołanie do rwartości reprezentowane przez „&&” zapewnia odwołanie, które jest ograniczone do wykorzystania do odczytu wartości zmiennych zawartych w powiązaniu. Jest przydatny do wiązania z przejściowymi obiektami lub wartościami r, które muszą zostać zniszczone, ponieważ pozwala uniknąć tworzenia repliki obiektu, co może zająć pamięć i czas.



Przykład 1: Wiązanie struktury w C++

Poniżej znajduje się przykład powiązania struktury C++:

#include

przy użyciu przestrzeni nazw std ;

struktura sześcian

{

int X ;

int I ;

int z ;

} ;

int główny ( )

{

sześcian c = { 10 , 20 , 30 } ;

automatyczny [ x_współrzędna , współrzędna_y , współrzędna z_ ] = C ;

cout << 'Oś X: ' << x_współrzędna << koniec ;

cout << 'Oś Y: ' << współrzędna_y << koniec ;

cout << 'Oś Z: ' << współrzędna z_ << koniec ;

powrót 0 ;

}

W powyższym przykładzie deklarujemy kostkę struktury z trzema liczbami całkowitymi x, y i z. Struktura przedstawia sześcian w przestrzeni. Tworzona jest zmienna c typu cube i inicjowana wartościami (10,20,30). W tej strukturze kodu powiązanie przypisuje wartości członków x, y i z struktury do poszczególnych zmiennych odpowiednio x_coordinate, y_coordinate, z_coordinate przy użyciu składni auto[ x_coordinate, y_coordinate, z_coordinate ] = c. Wynik powyższego pokazano poniżej:

Przykład 2: Powiązanie struktury w C++ w celu rozpakowania struktury

Poniżej znajduje się przykład powiązania struktury podczas rozpakowywania struktury:

#include

#włącz <łańcuch>

przy użyciu przestrzeni nazw std ;

struktura Student {

nazwa ciągu ;

int wiek ;

} ;

int główny ( ) {

uczeń s { „Hamza” , 32 } ;

automatyczny [ nazwa , wiek ] = S ;

cout << nazwa << ' Jest ' << wiek << ' lat.' << koniec ;

powrót 0 ;

}

W powyższym kodzie struktura Student ma dwóch członków: a nazwa to jest ciąg znaków i an wiek to jest liczba całkowita. Następnie tworzymy obiekt Student i przypisujemy wartości początkowe każdemu z jego elementów. Członkowie s są następnie rozdzielani na nazwę zmiennej i wiek za pomocą powiązania strukturalnego, a następnie te wartości są drukowane tak, jak na poniższym zrzucie ekranu:

Przykład 3: Wiązanie struktury w C++ z modyfikatorami

Poniżej znajduje się przykład powiązania struktury, które wykorzystuje modyfikator do aktualizacji wartości zmiennej jako num1 i num2:

#include

#include

przy użyciu przestrzeni nazw std ;

int główny ( ) {

krotka < int , int > T { 25 , 20 } ;

automatyczny & [ numer1 , liczba2 ] = T ;

cout << 'Wartość num1 = ' << numer1 << ', liczba2 = ' << liczba2 << ' \N ' ;

numer1 = 30 ;

cout << 'Zmieniona wartość num1 = ' << numer1 << ', liczba2 = ' << liczba2 <<

' \N ' ;

automatyczny && [ numer 3 , numer4 ] = make_tuple ( 100 , 250 ) ;

cout << „Teraz wartość num3 =” << numer 3 << ', liczba4 = ' << numer4 << ' \N ' ;

powrót 0 ;

}

W powyższym kodzie tworzymy krotkę t i używamy odwołania do lwartości, aby połączyć jej komponenty z liczbami num1 i num2. Następnie zmieniamy wartość num1 na 30 i wyprowadzamy wartości num1 i num2. Zbuduj także tymczasową krotkę za pomocą make_tuple(100, 250) i użyj odwołania rvalue, aby powiązać jej elementy z num3 i num4. Wartości num3 i num4 są następnie drukowane, ponieważ num3 i num4 są połączone z odwołaniem do wartości r, nie można ich użyć do zmiany tymczasowej krotki utworzonej przez make_tuple(100, 250). Potrafią tylko z niego czytać. Po uruchomieniu programu na ekranie pojawi się następujący wynik:

Wniosek

Powiązanie struktury to funkcja w języku C++, która rozpakowuje wiele wartości struktury lub klasy do poszczególnych zmiennych w jednym wyrażeniu, co skutkuje bardziej zwięzłym, czytelnym i bezpieczniejszym kodem. Wiązanie struktury za pomocą modyfikatorów usprawnia proces zmiany wartości w obiektach strukturalnych.