Vezava strukture v C++

Vezava Strukture V C



Vezava strukture vam omogoča, da izvlečete elemente iz strukture ali razreda in jih dodelite različnim spremenljivkam, ne da bi imeli dostop do vsakega člana posebej. Vezava strukture se uporablja za odpravo potrebe po ročnem pridobivanju elementov in izboljša berljivost in jedrnatost kode, tako da omogoča hkratno razpakiranje številnih elementov strukture ali razreda v različne spremenljivke. V tej vadnici bomo razpravljali o delu, sintaksi in primerih vezave strukture v C++.

Kaj je strukturirana vezava v C++?

Vezava strukture je funkcija C++, ki je bila dodana v C++17 in omogoča tudi razgradnjo strukture ali tuple v posamezne spremenljivke, kar izboljša jedrnatost kode. Uporablja se lahko za poenostavitev sintakse dostopa do članov strukture in zmanjšanje možnosti napak, ki jih povzročijo tipkarske napake ali nepravilno indeksiranje.

Sintaksa







Sintaksa vezave strukture v C++ je naslednja:



avto [ var1 , var2 , ... ] = izražanje ;

V sintaksi za vezavo strukture v C++, kjer sta »var1« in »var2« imeni spremenljivk, »izraz« pa je izraz, ki vrne strukturo ali razred. Za deklaracijo spremenljivk, ki so samodejno ustvarjene, uporabljamo samodejne ključne besede.



Modifikatorji

Modifikatorje je mogoče uporabiti v kombinaciji s strukturiranimi vezmi. Njihova sintaksa je navedena spodaj:





avto & [ a , b , c , ... ] = izražanje ;

avto && [ a , b , c , ... ] = izražanje ;

Operator »&« ali »&&«, uporabljen v deklaraciji, določa, ali je vezava sklic na lvalue ali rvalue. Referenca lvalue, predstavljena z '&', vzpostavi referenco, ki se lahko uporabi za spreminjanje vrednosti veznih spremenljivk. Spremembe vrednosti, narejene z uporabo sklica, bodo vidne v izvirni strukturi ali torki.

Referenca rvalue, ki jo predstavlja »&&«, na nasprotni strani zagotavlja referenco, ki je omejena na uporabo za branje vrednosti spremenljivk, vključenih v vezavo. Priročen je za povezovanje s prehodnimi objekti ali r-vrednostmi, ki jih je treba uničiti, saj se izogne ​​izdelavi replike predmeta, kar je lahko pomnilniško in zamudno.



Primer 1: Vezava strukture v C++

Sledi primer vezave strukture C++:

#include

uporaba imenskega prostora std ;

struct kocka

{

int x ;

int in ;

int z ;

} ;

int glavni ( )

{

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

avto [ x_koordinata , y_koordinata , z_koordinata ] = c ;

cout << 'Os X: ' << x_koordinata << konec ;

cout << 'Os Y: ' << y_koordinata << konec ;

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

vrnitev 0 ;

}

V zgornjem primeru deklariramo strukturno kocko s tremi celimi števili x, y in z. Struktura prikazuje kocko v prostoru. Spremenljivka c tipa cube je ustvarjena in inicializirana z vrednostmi (10,20,30). V tej strukturi kode povezovanje dodeli vrednosti članov x, y in z strukture posameznim spremenljivkam x_coordinate, y_coordinate, z_coordinate oziroma z uporabo sintakse auto[ x_coordinate, y_coordinate, z_coordinate ] = c. Rezultat zgoraj navedenega je prikazan spodaj:

Primer 2: Vezava strukture v C++ za razpakiranje strukture

Sledi primer vezave strukture za razpakiranje strukture:

#include

#include

uporaba imenskega prostora std ;

struct študent {

ime niza ;

int starost ;

} ;

int glavni ( ) {

Študentka s { 'Hamza' , 32 } ;

avto [ ime , starost ] = s ;

cout << ime << ' je ' << starost << 'let.' << konec ;

vrnitev 0 ;

}

V zgornji kodi ima struktura Student dva člana: a ime to je niz in an starost to je celo število. Nato ustvarimo objekt Student in vsakemu njegovemu članu dodelimo začetne vrednosti. Člani s so nato ločeni na ime in starost spremenljivke s strukturno vezavo, te vrednosti pa so nato natisnjene kot na spodnjem posnetku zaslona:

Primer 3: Vezava strukture v C++ z modifikatorji

Spodaj je primer vezave strukture, ki uporablja modifikator za posodobitev vrednosti spremenljivke kot num1 in num2:

#include

#include

uporaba imenskega prostora std ;

int glavni ( ) {

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

avto & [ št.1 , št.2 ] = t ;

cout << 'Vrednost num1 = ' << št.1 << ', num2 = ' << št.2 << ' \n ' ;

št.1 = 30 ;

cout << 'Spremenjena vrednost num1 = ' << št.1 << ', num2 = ' << št.2 <<

' \n ' ;

avto && [ številka3 , št.4 ] = make_tuple ( 100 , 250 ) ;

cout << 'Zdaj je vrednost num3 = ' << številka3 << ', num4 = ' << št.4 << ' \n ' ;

vrnitev 0 ;

}

V prejšnji kodi zgradimo torko t in uporabimo referenco lvalue za povezavo njenih komponent s num1 in num2. Nato spremenimo vrednost num1 na 30 in izpišemo vrednosti num1 in num2. Zgradite tudi začasno tuple prek make_tuple(100, 250) in uporabite referenco rvalue, da povežete njene elemente z num3 in num4. Vrednosti num3 in num4 sta nato natisnjeni, ker sta num3 in num4 povezani z referenco rvalue, zato ju ni mogoče uporabiti za spreminjanje začasne tuple, ki jo tvori make_tuple(100, 250). Iz njega so sposobni le brati. Ko zaženete program, se na zaslonu prikaže naslednji rezultat:

Zaključek

Vezava strukture je funkcija v C++, ki razpakira več vrednosti strukture ali razreda v posamezne spremenljivke v enem samem izrazu, kar povzroči bolj jedrnato, berljivo in varnejšo kodo. Vezava strukture z uporabo modifikatorjev poenostavi postopek spreminjanja vrednosti znotraj strukturiranih objektov.