Cómo devolver múltiples valores en C++

Como Devolver Multiples Valores En C



El lenguaje C++ nos proporciona muchas funciones y facilita mucho nuestra programación. Pero a veces necesitamos devolver varios valores mientras trabajamos con programación en C++. Desafortunadamente, C++ no nos facilita esta característica. Para devolver múltiples valores en C++, debemos utilizar diferentes técnicas. Podemos devolver múltiples valores en C++ usando tuplas/pares, punteros y matrices. Estudiaremos a fondo todas estas técnicas en esta guía junto con códigos y explicaciones.

Ejemplo 1: utilización de tuplas/pares

Hagamos una demostración práctica para devolver múltiples valores en C++. Aquí, utilizamos las técnicas de tuplas/pares para ayudar a devolver múltiples valores en nuestro código. C++ proporciona varios archivos de encabezado que debemos incluir en nuestro código. Incluimos aquí “bits/stdc++.h” ya que contiene todas las bibliotecas de programación C++. Luego, se agrega aquí el espacio de nombres que es 'std'. Después de esto, utilizamos la palabra clave 'tupla' en la que colocamos tres tipos de datos, dos tipos de datos flotantes y el tipo de datos restante 'char'. Debajo, utilizamos la palabra clave 'return' para empaquetar los valores y devolver una tupla.

Ahora, utilizamos el método 'par' para devolver múltiples valores. En este método de 'par', colocamos dos tipos de datos de variables, y aquí ambos son 'flotantes'. Las variables se denominan 'float_1' y 'float_2'. Luego, empaquetamos dos valores para volver a los 'pares'. Después de esto, invocamos 'main()' aquí y luego declaramos dos variables 'flotantes' con el nombre 'f_1, f_2'. La variable 'char' también se declara aquí como 'myChar'. Luego, descomprimimos los valores que devuelve la función “My_Tuple()”.







Debajo de esto, almacenamos los valores devueltos en pares. Almacenamos “4.99, 8.98” en la función “My_Tuple” y “6.86, 3.22” en la función “My_Pair”. Luego, utilizamos el “cout” que imprime toda la información que está escrita en su interior.



Código 1:



#incluir
usando espacio de nombres enfermedad de transmisión sexual ;
tupla < flotar , flotar , carbonizarse > Mi_tupla ( flotar f_1, flotar f_2 ) {
    devolver hacer_tupla ( f_2, f_1, '$' ) ;        
}
par < flotar , flotar > Mi_par ( flotar fa, flotar pensión completa ) {
    devolver hacer_par ( f_b, f_a ) ;        
}
En t principal ( ) {
    flotar f_1, f_2 ;
    carbonizarse miChar ;
atar ( f_1, f_2, miCar ) = Mi_tupla ( 4.99 , 8.98 ) ;
par nuevo_p = Mi_par ( 6.86 , 3.22 ) ;
    corte << 'Valores que obtenemos por tuplas: ' ;
    corte << f_1 << ' ' << f_2 << ' ' << miChar << fin ;  
    corte << 'Valores que obtenemos por Par: ' ;
    corte << nuevo_p. primero << ' ' << nuevo_p. segundo ;
    devolver 0 ;
}

Producción :





Los valores que obtenemos aquí utilizando los métodos 'tuplas' y 'pares' se muestran a continuación. Tenga en cuenta que aquí devuelve varios valores.



Ejemplo 2: utilización de los punteros

Pasamos los parámetros junto con sus direcciones en la función 'comparar' aquí. Agregamos “valor_1” y “valor_2” del tipo “int” y el “int* g_Address, int* s_Address”. Después de esto, utilizamos la condición 'si' en la que agregamos una condición de que el 'valor_1' es mayor que el 'valor_2'. Si esto se cumple, se ejecuta la siguiente declaración. Si no es así, ignora la declaración que se agrega debajo y avanza hacia la parte 'de lo contrario'. Ahora, después de invocar 'main()', declaramos cuatro nuevas variables con los nombres 'g_value', 's_value', 'newValue1' y 'newValue2'.

Luego de esto, imprimimos un mensaje para ingresar los números y luego colocamos “cin” el cual obtiene dos valores del usuario. Los valores que ingresa el usuario se guardan en las variables “newValue1” y “newValue2”, respectivamente. Después de esto, llamamos a la función 'compare()' que creamos previamente y le pasamos cuatro parámetros. Luego, mostramos el resultado después de realizar la función “comparar” y muestra el número mayor y el número menor de esos números que ingresa el usuario.

Código 2:

#incluir
usando espacio de nombres enfermedad de transmisión sexual ;
vacío comparar ( En t valor_1, En t valor_2, En t * g_Dirección, En t * s_Dirección )
{
    si ( valor_1 > valor_2 ) {
        * g_Dirección = valor_1 ;
        * s_Dirección = valor_2 ;
    }
    demás {
        * g_Dirección = valor_2 ;
        * s_Dirección = valor_1 ;
    }
}
En t principal ( )
{
    En t valor_g, valor_s, nuevoValor_1, nuevoValor_2 ;
    corte << 'Por favor ingrese dos números: ' <> nuevoValor_1 >> nuevoValor_2 ;
comparar ( nuevoValor_1, nuevoValor_2, & valor_g, & valor_s ) ;
    corte << ' \norte El número mayor es ' << valor_g << 'y el número menor es '
    << valor_s ;
    devolver 0 ;
}

Producción :
El usuario ingresa aquí '86' y '23'. Después de presionar “Enter”, muestra el resultado. De esta forma obtenemos múltiples valores.

Ejemplo 3: utilización de la matriz

Creamos aquí la función “ComputeComparison()” en la que insertamos dos variables, “num_1” y “num_2”, como tipo “int” y también una matriz llamada “my_arr[]”. Después de esto, tenemos la condición 'si' que verifica si 'num_1' es mayor que 'num_2' o no. Si es cierto, 'num_1' se asigna a 'my_arr[0]' y 'num_2' se asigna a 'my_arr[1]'. Pero si la condición no es verdadera, se ejecutan las declaraciones después de “else” en las que asignamos “num_2” a “my_arr[0]” y “num_1” a “my_arr[1]”.

Después de esto, llamamos a 'main()' aquí y luego declaramos dos variables int más: 'newNum_1' y 'newNum_2'. Después de esto, se declara una matriz de tamaño '2'. Después de esto, obtenemos dos números del usuario con la ayuda de 'cin' y luego llamamos a la función 'ComputeComparison()' y mostramos el siguiente resultado. Entonces, devuelve múltiples valores aquí.

Código 3:

#incluir
usando espacio de nombres enfermedad de transmisión sexual ;
vacío ComputarComparación ( En t número_1, En t número_2, En t mi_arr [ ] )
{

    si ( número_1 > número_2 ) {
mi_arr [ 0 ] = número_1 ;
mi_arr [ 1 ] = número_2 ;
    }
    demás {
mi_arr [ 0 ] = número_2 ;
mi_arr [ 1 ] = número_1 ;
    }
}

En t principal ( )
{
    En t nuevoNum_1, nuevoNum_2 ;
    En t mi_arr [ 2 ] ;

    corte << 'Ingrese dos números para comparar' <> nuevoNum_1 >> nuevoNum_2 ;
ComputarComparación ( nuevoNum_1, nuevoNum_2, my_arr ) ;
    corte << ' \norte El número mayor es ' << mi_arr [ 0 ] << ' y el '
        'el número más pequeño es ' << mi_arr [ 1 ] ;

    devolver 0 ;
}

Producción :
Escribimos “54” y “98” aquí y luego presionamos “Entrar” para mostrar el resultado. Muestra los números mayores y menores de los números que ingresamos.

Ejemplo 4: Utilizando las tuplas

Aquí se incluyen dos archivos de encabezado: 'tuple' y 'iostream'. A continuación, se coloca aquí el espacio de nombres 'std'. A continuación, utilizamos la palabra clave 'tupla' e insertamos dos tipos de datos que son 'int'. Después de esto, creamos una función con el nombre 'findingValues()' y pasamos 'intValue_1' e 'intValue2' como parámetros.

Luego, se coloca el “si” donde escribimos la condición “intValue_1 < intValue_2”. Debajo, utilizamos la palabra clave 'return' y colocamos la función 'make_tuple()' en la que ambas variables se agregan como el parámetro 'intValue_1, intValue2_'. Luego, tenemos la parte “else” en la que colocamos nuevamente “return” junto con la función “make_tuple()”. Pero aquí colocamos primero el “intValue_2” y luego el “intValue1”. Ahora, llamamos a 'main()' e inicializamos 'new_value1' con '5' y 'new_value2' con '28'.

A continuación, declaramos dos variables más de tipo 'int' con los nombres 'mayor' y 'menor'. Luego, colocamos la función “tie()” y pasamos las variables “menor, mayor” como parámetro y también llamamos a la función “findingValues()” aquí. Después de esto, imprimimos ambos valores: el número mayor y el menor.

Código 4:

#incluir
#incluir
usando espacio de nombres enfermedad de transmisión sexual ;
tupla encontrandoValores ( En t intValor_1, En t intValor_2 )
{
    si ( valorint_1 < intValor_2 ) {
    devolver hacer_tupla ( valorint_1, valorint_2 ) ;
    }
    demás {
    devolver hacer_tupla ( valorint_2, valorint_1 ) ;
    }
}
En t principal ( )
{
    En t nuevo_valor1 = 5 , nuevo_valor2 = 28 ;
    En t mayor, menor ;
atar ( menor, mayor ) = encontrandovalores ( nuevo_valor1, nuevo_valor2 ) ;
    imprimirf ( 'El número mayor es %dy el '
        'el número más pequeño es %d' ,
mayor, menor ) ;
    devolver 0 ;
}

Producción :

Los números que agregamos a nuestro código muestran simultáneamente los valores mayores y menores. De esta manera, podemos devolver fácilmente múltiples valores en nuestro código.

Conclusión

Esta guía trata sobre la “devolución de múltiples valores” en códigos C++. Exploramos a fondo esta noción en esta guía y analizamos tres técnicas que ayudan a devolver múltiples valores en la programación de C++. Explicamos que se devuelven múltiples valores utilizando las técnicas de tuplas, pares, punteros y matrices. Todas estas técnicas se describen detalladamente aquí.