Enllaç d'estructura en C++

Enllac D Estructura En C



L'enllaç d'estructura us permet extreure els elements d'una estructura o classe i assignar-los a diferents variables sense tenir accés a cada membre per separat. L'enllaç d'estructura s'utilitza per eliminar la necessitat d'extracció manual d'elements i millora la llegibilitat i la concisió del codi permetent el desempaquet simultània de nombrosos elements d'una estructura o classe en diferents variables. En aquest tutorial, parlarem del treball, la sintaxi i els exemples d'enllaç d'estructura en C++.

Què és l'enllaç estructurat en C++?

L'enllaç d'estructura és una característica de C++ que es va afegir a C++17 que també permet la descomposició d'una estructura o tupla en variables individuals, millorant la concisió del codi. Es pot utilitzar per simplificar la sintaxi d'accés als membres d'struct i reduir la possibilitat d'errors provocats per errors ortogràfics o indexació incorrecta.

Sintaxi







La sintaxi de l'enllaç d'estructura en C++ és la següent:



automàtic [ var1 , var2 , ... ] = expressió ;

A la sintaxi de l'enllaç d'estructura en C++, on 'var1' i 'var2' són noms de variables i 'expression' és una expressió que produeix una estructura o classe. Utilitzem paraules clau auto per declarar variables que es creen automàticament.



Modificadors

Els modificadors es poden utilitzar en aparellament amb enllaços estructurats. La seva sintaxi s'esmenta a continuació:





automàtic & [ a , b , c , ... ] = expressió ;

automàtic && [ a , b , c , ... ] = expressió ;

L'operador '&' o '&&' utilitzat a la declaració defineix si l'enllaç és una referència lvalue o rvalue. Una referència de lvalue representada per '&' estableix una referència que es pot utilitzar per canviar els valors de les variables d'enllaç. Els canvis en els valors fets amb la referència es veuran a l'estructura o tupla original.

La referència rvalue representada per “&&”, en canvi, proporciona una referència que es limita a utilitzar-se per llegir el valor de les variables incloses a l'enllaç. És útil per vincular-se a objectes transitoris o valors r que s'han de destruir, ja que evita fer una rèplica de l'objecte, això pot ser de memòria i de temps.



Exemple 1: Enllaç d'estructura en C++

El següent és un exemple d'enllaç d'estructura C++:

#inclou

utilitzant l'espai de noms std ;

estructura cub

{

int x ;

int i ;

int Amb ;

} ;

int principal ( )

{

c-cub = { 10 , 20 , 30 } ;

automàtic [ coordenada_x , i_coordinate , coordenada_z ] = c ;

cout << 'Eix X:' << coordenada_x << endl ;

cout << 'I axis:' << i_coordinate << endl ;

cout << 'Eix Z:' << coordenada_z << endl ;

tornar 0 ;

}

A l'exemple anterior, declarem un cub d'estructura amb tres nombres enters x, y i z. L'estructura mostra un cub a l'espai. Es crea una variable c de tipus cub i s'inicia amb valors (10,20,30). En aquesta estructura de codi, l'enllaç assigna valors dels membres x, y i z de l'estructura a les variables individuals x_coordinate, y_coordinate, z_coordinate respectivament utilitzant la sintaxi auto[ x_coordinate, y_coordinate, z_coordinate ] = c. La sortida de l'anterior es mostra a continuació:

Exemple 2: Enllaç d'estructura en C++ per desempaquetar una estructura

A continuació es mostra un exemple d'enllaç d'estructura per desempaquetar una estructura:

#inclou

#inclou

utilitzant l'espai de noms std ;

estructura Estudiant {

nom de cadena ;

int edat ;

} ;

int principal ( ) {

Estudiant s { 'Hamza' , 32 } ;

automàtic [ nom , edat ] = s ;

cout << nom << ' és ' << edat << ' anys.' << endl ;

tornar 0 ;

}

Al codi anterior, una estructura Student té dos membres: a nom això és una corda i un edat que és un nombre enter. Aleshores, creem l'objecte Student i assignem valors inicials a cadascun dels seus membres. Els membres de s es separen en el nom i l'edat de la variable mitjançant l'enllaç estructural, i aquests valors s'imprimeixen com a la captura de pantalla següent:

Exemple 3: Enllaç d'estructura en C++ amb modificadors

A continuació es mostra un exemple d'enllaç d'estructura que fa ús d'un modificador per actualitzar el valor d'una variable com a num1 i num2:

#inclou

#inclou

utilitzant l'espai de noms std ;

int principal ( ) {

tupla < int , int > t { 25 , 20 } ;

automàtic & [ núm1 , num2 ] = t ;

cout << 'El valor de num1 = ' << núm1 << ', num2 = ' << num2 << ' \n ' ;

núm1 = 30 ;

cout << 'El valor canviat de num1 = ' << núm1 << ', num2 = ' << num2 <<

' \n ' ;

automàtic && [ número 3 , num4 ] = make_tuple ( 100 , 250 ) ;

cout << 'Ara el valor de num3 = ' << número 3 << ', num4 = ' << num4 << ' \n ' ;

tornar 0 ;

}

En el codi anterior, construïm una tupla t i utilitzem la referència lvalue per enllaçar els seus components a num1 i num2. A continuació, canviem el valor de num1 a 30 i emetem els valors num1 i num2. També creeu una tupla temporal mitjançant make_tuple(100, 250) i utilitzeu una referència rvalue per vincular els seus elements a num3 i num4. Els valors de num3 i num4 s'imprimeixen perquè num3 i num4 estan acoblats amb una referència rvalue, no es poden utilitzar per canviar la tupla temporal formada per make_tuple(100, 250). Només són capaços de llegir-ne. Quan executeu el programa, es mostrarà el següent resultat a la pantalla:

Conclusió

L'enllaç d'estructura és una característica de C++ que desempaqueta diversos valors d'una estructura o classe en variables individuals en una sola expressió, donant lloc a un codi més concís, llegible i més segur. L'enllaç d'estructura mitjançant modificadors agilitza el procés de canvi de valors dins dels objectes estructurats.