Vezanje strukture u C++

Vezanje Strukture U C



Vezanje strukture omogućuje izdvajanje elemenata iz strukture ili klase i njihovo dodjeljivanje različitim varijablama bez pristupa svakom članu zasebno. Vezanje strukture koristi se za uklanjanje potrebe za ručnim izdvajanjem elemenata i poboljšava čitljivost i konciznost koda dopuštajući istovremeno raspakiranje brojnih elemenata strukture ili klase u različite varijable. U ovom vodiču raspravljat ćemo o radu, sintaksi i primjerima vezanja strukture u C++.

Što je Structured Binding u C++?

Vezanje strukture je C++ značajka koja je dodana u C++17 koja također dopušta dekompoziciju strukture ili torke u pojedinačne varijable, poboljšavajući konciznost koda. Može se koristiti za jednostavniju sintaksu pristupa članu strukture i smanjenje mogućnosti pogrešaka uzrokovanih upisnim pogreškama ili netočnim indeksiranjem.

Sintaksa







Sintaksa vezanja strukture u C++ je sljedeća:



auto [ var1 , var2 , ... ] = izraz ;

U sintaksi za vezanje strukture u C++, gdje su 'var1' i 'var2' imena varijabli, a 'izraz' je izraz koji daje strukturu ili klasu. Koristimo automatske ključne riječi za deklariranje varijabli koje se automatski stvaraju.



Modifikatori

Modifikatori se mogu koristiti u kombinaciji sa strukturiranim vezovima. Njihova sintaksa navedena je u nastavku:





auto i [ a , b , c , ... ] = izraz ;

auto && [ a , b , c , ... ] = izraz ;

Operator “&” ili “&&” koji se koristi u deklaraciji definira je li vezanje referenca lvalue ili rvalue. Referenca lvalue predstavljena s '&' uspostavlja referencu koja se može koristiti za promjenu vrijednosti varijabli vezanja. Promjene vrijednosti napravljene korištenjem reference vidjet će se u izvornoj strukturi ili torci.

Referenca rvalue predstavljena s '&&', s druge strane, daje referencu koja je ograničena na korištenje za čitanje vrijednosti varijabli uključenih u vezanje. Zgodan je za vezanje na prolazne objekte ili rvrijednosti koje treba uništiti budući da izbjegava stvaranje replike objekta, što može oduzimati memoriju i vrijeme.



Primjer 1: Povezivanje strukture u C++

Slijedi primjer vezivanja C++ strukture:

#include

koristeći prostor imena std ;

strukturirati kocka

{

int x ;

int i ;

int S ;

} ;

int glavni ( )

{

c-kocka = { 10 , dvadeset , 30 } ;

auto [ x_koordinata , y_koordinata , z_koordinata ] = c ;

cout << 'X os: ' << x_koordinata << endl ;

cout << 'Y-os: ' << y_koordinata << endl ;

cout << 'Z os: ' << z_koordinata << endl ;

povratak 0 ;

}

U gornjem primjeru deklariramo kocku strukture s tri cijela broja x, y i z. Struktura prikazuje kocku u prostoru. Kreira se varijabla c tipa cube i inicijalizira s vrijednostima (10,20,30). U ovoj strukturi koda vezanje dodjeljuje vrijednosti članova x, y i z strukture pojedinačnim varijablama x_coordinate, y_coordinate, z_coordinate pomoću sintakse auto[ x_coordinate, y_coordinate, z_coordinate] = c. Ishod navedenog prikazan je u nastavku:

Primjer 2: Povezivanje strukture u C++ za raspakiranje strukture

Slijedi primjer vezivanja strukture za raspakiranje strukture:

#include

#include

koristeći prostor imena std ;

strukturirati Student {

naziv niza ;

int dob ;

} ;

int glavni ( ) {

Student s { 'Hamza' , 32 } ;

auto [ Ime , dob ] = s ;

cout << Ime << ' je ' << dob << 'godina.' << endl ;

povratak 0 ;

}

U gornjem kodu, struktura Student ima dva člana: a Ime to je string i an dob to je cijeli broj. Zatim kreiramo objekt Student i dodjeljujemo početne vrijednosti svakom od njegovih članova. Članovi s se zatim odvajaju u ime varijable i starost pomoću strukturnog povezivanja, a te se vrijednosti zatim ispisuju kao na snimci zaslona u nastavku:

Primjer 3: Vezanje strukture u C++ s modifikatorima

Ispod je primjer vezivanja strukture koji koristi modifikator za ažuriranje vrijednosti varijable kao num1 i num2:

#include

#include

koristeći prostor imena std ;

int glavni ( ) {

tuple < int , int > t { 25 , dvadeset } ;

auto i [ broj1 , broj2 ] = t ;

cout << 'Vrijednost num1 = ' << broj1 << ', num2 = ' << broj2 << ' \n ' ;

broj1 = 30 ;

cout << 'Promijenjena vrijednost num1 = ' << broj1 << ', num2 = ' << broj2 <<

' \n ' ;

auto && [ broj3 , broj4 ] = napraviti_torku ( 100 , 250 ) ;

cout << 'Sada vrijednost num3 = ' << broj3 << ', num4 = ' << broj4 << ' \n ' ;

povratak 0 ;

}

U prethodnom kodu gradimo torku t i koristimo referencu lvalue za povezivanje njenih komponenti s num1 i num2. Zatim mijenjamo vrijednost num1 u 30 i ispisujemo vrijednosti num1 i num2. Također izgradite privremenu torku putem make_tuple(100, 250) i koristite referencu rvalue za povezivanje njenih elemenata s num3 i num4. Vrijednosti num3 i num4 se tada ispisuju jer su num3 i num4 povezani s referencom rvalue, ne mogu se koristiti za promjenu privremene torke koju formira make_tuple(100, 250). Oni su sposobni samo čitati iz njega. Kada pokrenete program, na ekranu će se prikazati sljedeći rezultat:

Zaključak

Vezanje strukture je značajka u C++ koja raspakira više vrijednosti strukture ili klase u pojedinačne varijable u jednom izrazu, što rezultira sažetijim, čitljivijim i sigurnijim kodom. Vezanje strukture pomoću modifikatora usmjerava proces mijenjanja vrijednosti unutar strukturiranih objekata.