estándar::tupla, estándar::par | Devolver múltiples valores de una función usando Tuple y Pair en C++

Puede haber algunos casos en los que necesite devolver múltiples valores (tal vez de diferentes tipos de datos) mientras resuelve un problema. Un método para hacer lo mismo es usar punteros, estructuras o variables globales, ya discutidas aquí
. Hay otro método interesante para hacer lo mismo sin usar los métodos anteriores, usando tuplas (para devolver múltiples valores) y pares (para dos valores).

Podemos declarar la función con tipo de devolución como par o tupla (lo que sea necesario) y podemos empaquetar los valores que se devolverán y devolver el conjunto empaquetado de valores. Los valores devueltos se pueden desempaquetar en la función de llamada.

tupla

  • Una tupla es un objeto capaz de contener una colección de elementos donde cada elemento puede ser de un tipo diferente.
  • La plantilla de clase std::tuplees una colección de tamaño fijo de valores heterogéneos

Par

  • Esta clase une un par de valores, que pueden ser de diferentes tipos.
  • Un par es un caso específico de a con dos elementos

Nota: Tuple también se puede usar para devolver dos valores en lugar de usar pair.

#include<bits/stdc++.h>
using namespace std;
  
// A Method that returns multiple values using
// tuple in C++.
tuple<int, int, char> foo(int n1, int n2)
{
    // Packing values to return a tuple
    return make_tuple(n2, n1, 'a');             
}
  
// A Method returns a pair of values using pair
std::pair<int, int> foo1(int num1, int num2)
{
    // Packing two values to return a pair 
    return std::make_pair(num2, num1);            
}
  
int main()
{
    int a,b;
    char cc;
      
    // Unpack the elements returned by foo
    tie(a, b, cc) = foo(5, 10);      
      
    // Storing  returned values in a pair 
    pair<int, int> p = foo1(5,2);  
      
    cout << "Values returned by tuple: ";
    cout << a << " " << b << " " << cc << endl;
      
    cout << "Values returned by Pair: ";
    cout << p.first << " " << p.second;
    return 0;
}

Producción:

Values returned by tuple: 10 5 a
Values returned by Pair: 2 5

Este artículo es una contribución de Mayank Rawat. Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *