Enlace de estructura en C++

Enlace De Estructura En C



El enlace de estructura le permite extraer los elementos de una estructura o clase y asignarlos a diferentes variables sin tener acceso a cada miembro por separado. El enlace de estructura se utiliza para eliminar la necesidad de extracción manual de elementos y mejora la legibilidad y la concisión del código al permitir el desempaquetado simultáneo de numerosos elementos de una estructura o clase en distintas variables. En este tutorial, discutiremos el trabajo, la sintaxis y ejemplos de enlace de estructura en C++.

¿Qué es el enlace estructurado en C++?

El enlace de estructura es una función de C++ que se agregó en C++17 y que también permite la descomposición de una estructura o tupla en variables individuales, lo que mejora la concisión del código. Se puede usar para simplificar la sintaxis de acceso a los miembros de la estructura y reducir la posibilidad de errores provocados por errores tipográficos o indexación incorrecta.

Sintaxis







La sintaxis del enlace de estructura en C++ es la siguiente:



auto [ var1 , var2 , ... ] = expresión ;

En la sintaxis para el enlace de estructuras en C++, donde 'var1' y 'var2' son nombres de variables y 'expresión' es una expresión que produce una estructura o clase. Usamos palabras clave automáticas para declarar variables que se crean automáticamente.



Modificadores

Los modificadores se pueden usar en combinación con enlaces estructurados. Su sintaxis se menciona a continuación:





auto & [ a , b , C , ... ] = expresión ;

auto && [ a , b , C , ... ] = expresión ;

El operador '&' o '&&' utilizado en la declaración define si el enlace es una referencia de valor l o valor r. Una referencia de lvalue representada por '&' establece una referencia que se puede usar para cambiar los valores de las variables de vinculación. Los cambios en los valores realizados utilizando la referencia se verán en la estructura o tupla original.

La referencia rvalue representada por “&&”, por el contrario, proporciona una referencia que se limita a ser utilizada para leer el valor de las variables incluidas en el enlace. Es útil para vincular objetos transitorios o valores que deben destruirse, ya que evita hacer una réplica del objeto, esto puede consumir memoria y mucho tiempo.



Ejemplo 1: enlace de estructura en C++

El siguiente es un ejemplo de enlace de estructura C++:

#incluye

usando el espacio de nombres estándar ;

estructura cubo

{

  En t X ;

  En t y ;

  En t Con ;

} ;

En t principal ( )

{

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

  auto [ coordenada_x , y_coordinate , coordenada_z ] = C ;

cout << 'Eje X:' << coordenada_x << final ;

cout << 'Y axis : ' << y_coordinate << final ;

cout << 'Eje Z : ' << coordenada_z << final ;

  devolver 0 ;

}

En el ejemplo anterior, declaramos una estructura de cubo con tres enteros x, y y z. La estructura muestra un cubo en el espacio. Se crea una variable c de tipo cubo y se inicializa con valores (10,20,30). En esta estructura de código, el enlace asigna valores de los miembros x, y y z de struct a las variables individuales x_coordinate, y_coordinate, z_coordinate respectivamente usando la sintaxis auto[ x_coordinate, y_coordinate, z_coordinate ] = c. La salida de lo anterior se muestra a continuación:

Ejemplo 2: enlace de estructura en C++ para desempaquetar una estructura

El siguiente es un ejemplo de enlace de estructura de desempaquetar una estructura:

#incluir

#incluir

usando el espacio de nombres estándar ;

estructura Alumno {

nombre de cadena ;

  En t edad ;

} ;

En t principal ( ) {

Estudiantes { 'Hamza' , 32 } ;

  auto [ nombre , edad ] = s ;

cout << nombre << ' es ' << edad << 'años'. << final ;

  devolver 0 ;

}

En el código anterior, una estructura Student tiene dos miembros: un nombre que es una cadena y un edad eso es un entero Luego, creamos el objeto Student y asignamos valores iniciales a cada uno de sus miembros. Luego, los miembros de s se separan en el nombre de la variable y la edad mediante el enlace estructural, y estos valores se imprimen como en la siguiente captura de pantalla:

Ejemplo 3: enlace de estructura en C++ con modificadores

A continuación se muestra un ejemplo de enlace de estructura que utiliza un modificador para actualizar el valor de una variable como num1 y num2:

#incluir

#incluye

usando el espacio de nombres estándar ;

En t principal ( ) {

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

auto & [ numero1 , numero2 ] = t ;

cout << 'El valor de num1 = ' << numero1 << ', numero2 = ' << numero2 << ' \norte ' ;

numero1 = 30 ;

cout << 'El valor cambiado de num1 = ' << numero1 << ', numero2 = ' << numero2 <<

  ' \norte ' ;

auto && [ numero 3 , número4 ] = hacer_tupla ( 100 , 250 ) ;

cout << 'Ahora el valor de num3 = ' << numero 3 << ', numero4 = ' << número4 << ' \norte ' ;

  devolver 0 ;

}

En el código anterior, construimos una tupla t y usamos la referencia lvalue para vincular sus componentes a num1 y num2. Luego cambiamos el valor de num1 a 30 y generamos los valores num1 y num2. También cree una tupla temporal a través de make_tuple(100, 250) y use una referencia rvalue para vincular sus elementos a num3 y num4. Luego, los valores de num3 y num4 se imprimen porque num3 y num4 están acoplados con una referencia de valor r, no se pueden usar para cambiar la tupla temporal formada por make_tuple(100, 250). Solo son capaces de leer de él. Cuando ejecute el programa, el siguiente resultado se mostrará en la pantalla:

Conclusión

El enlace de estructura es una característica de C++ que desempaqueta múltiples valores de una estructura o clase en variables individuales en una sola expresión, lo que da como resultado un código más conciso, legible y seguro. La vinculación de estructuras mediante modificadores agiliza el proceso de cambio de valores dentro de objetos estructurados.