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::tuple
es 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