Liaison de structure en C++

Liaison De Structure En C



La liaison de structure vous permet d'extraire les éléments d'une structure ou d'une classe et de les affecter à différentes variables sans avoir accès à chaque membre séparément. La liaison de structure est utilisée pour éliminer le besoin d'extraction manuelle d'éléments et améliore la lisibilité et la concision du code en permettant le déballage simultané de nombreux éléments d'une structure ou d'une classe dans des variables distinctes. Dans ce didacticiel, nous aborderons le fonctionnement, la syntaxe et des exemples de liaison de structure en C++.

Qu'est-ce que la liaison structurée en C++ ?

La liaison de structure est une fonctionnalité C++ ajoutée en C++17 qui permet également la décomposition d'une structure ou d'un tuple en variables individuelles, améliorant ainsi la concision du code. Il peut être utilisé pour simplifier la syntaxe d'accès aux membres de la structure et réduire le risque d'erreurs provoquées par des fautes de frappe ou une indexation incorrecte.

Syntaxe







La syntaxe de la liaison de structure en C++ est la suivante :



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

Dans la syntaxe de la liaison de structure en C++, où « var1 » et « var2 » sont des noms de variables, et « expression » est une expression qui produit une structure ou une classe. Nous utilisons des mots-clés automatiques pour déclarer des variables qui sont automatiquement créées.



Modificateurs

Les modificateurs peuvent être utilisés en association avec des liaisons structurées. Leur syntaxe est mentionnée ci-dessous :





auto & [ un , b , c , ... ] = expression ;

auto && [ un , b , c , ... ] = expression ;

L'opérateur '&' ou '&&' utilisé dans la déclaration définit si la liaison est une référence lvalue ou rvalue. Une référence lvalue représentée par « & » établit une référence qui peut être utilisée pour modifier les valeurs des variables de liaison. Les modifications apportées aux valeurs effectuées à l'aide de la référence seront visibles dans la structure ou le tuple d'origine.

La référence rvalue représentée par '&&', en revanche, fournit une référence qui se limite à être utilisée pour lire la valeur des variables incluses dans la liaison. C'est pratique pour lier des objets transitoires ou des rvalues ​​qui doivent être détruits car cela évite de faire une réplique de l'objet, cela peut prendre beaucoup de temps et de mémoire.



Exemple 1 : liaison de structure en C++

Voici un exemple de liaison de structure C++ :

#include

en utilisant l'espace de noms std ;

structure cube

{

entier X ;

entier et ;

entier Avec ;

} ;

entier principal ( )

{

  cube c = { dix , vingt , 30 } ;

auto [ coordonnée_x , coordonnée_y , coordonnée_z ] = c ;

écoute << 'Axe X :' << coordonnée_x << fin ;

écoute << 'Axe Y : ' << coordonnée_y << fin ;

écoute << 'Axe z : ' << coordonnée_z << fin ;

retour 0 ;

}

Dans l'exemple ci-dessus, nous déclarons un struct cube avec trois entiers x, y et z. La structure montre un cube dans l'espace. Une variable c de type cube est créée et initialisée avec les valeurs (10,20,30). Dans cette structure de code, la liaison attribue les valeurs des membres x, y et z de struct aux variables individuelles x_coordinate, y_coordinate, z_coordinate respectivement en utilisant la syntaxe auto[ x_coordinate, y_coordinate, z_coordinate ] = c. La sortie de ce qui précède est illustrée ci-dessous :

Exemple 2 : liaison de structure en C++ pour décompresser une structure

Voici un exemple de liaison de structure consistant à déballer une structure :

#include

#include

en utilisant l'espace de noms std ;

structure Étudiant {

nom de chaîne ;

entier âge ;

} ;

entier principal ( ) {

Étudiants { 'Hamza' , 32 } ;

auto [ nom , âge ] = s ;

écoute << nom << ' est ' << âge << ' ans.' << fin ;

retour 0 ;

}

Dans le code ci-dessus, une structure Student a deux membres : un nom c'est une chaîne et un âge c'est un entier. Ensuite, nous créons l'objet Student et attribuons des valeurs initiales à chacun de ses membres. Les membres de s sont ensuite séparés en nom et âge de la variable à l'aide de la liaison structurelle, et ces valeurs sont ensuite imprimées comme dans la capture d'écran ci-dessous :

Exemple 3 : liaison de structure en C++ avec modificateurs

Vous trouverez ci-dessous un exemple de liaison de structure qui utilise un modificateur pour mettre à jour la valeur d'une variable en tant que num1 et num2 :

#include

#include

en utilisant l'espace de noms std ;

entier principal ( ) {

tuple < entier , entier > t { 25 , vingt } ;

auto & [ num1 , num2 ] = t ;

écoute << 'La valeur de num1 = ' << num1 << ', num2 = ' << num2 << ' \n ' ;

num1 = 30 ;

écoute << 'La valeur modifiée de num1 = ' << num1 << ', num2 = ' << num2 <<

' \n ' ;

auto && [ numéro 3 , num4 ] = make_tuple ( 100 , 250 ) ;

écoute << 'Maintenant la valeur de num3 = ' << numéro 3 << ', num4 = ' << num4 << ' \n ' ;

retour 0 ;

}

Dans le code précédent, nous construisons un tuple t et utilisons la référence lvalue pour lier ses composants à num1 et num2. Nous changeons ensuite la valeur de num1 en 30 et produisons les valeurs num1 et num2. Construisez également un tuple temporaire via make_tuple(100, 250) et utilisez une référence rvalue pour lier ses éléments à num3 et num4. Les valeurs de num3 et num4 sont ensuite imprimées car num3 et num4 sont couplés à une référence rvalue, elles ne peuvent pas être utilisées pour modifier le tuple temporaire formé par make_tuple(100, 250). Ils ne sont capables que de le lire. Lorsque vous exécutez le programme, le résultat suivant s'affiche à l'écran :

Conclusion

La liaison de structure est une fonctionnalité de C++ qui décompresse plusieurs valeurs d'une structure ou d'une classe en variables individuelles dans une seule expression, ce qui donne un code plus concis, lisible et plus sûr. La liaison de structure à l'aide de modificateurs rationalise le processus de modification des valeurs dans les objets structurés.