在某些情况下,解决问题时需要返回多个值(可能是不同的数据类型)。一种实现此目的的方法是使用指针,结构或全局变量,这已在此处进行了讨论。
还有另一种有趣的方法,可以在不使用上述方法的情况下执行相同的操作,即使用元组(用于返回多个值)和成对(用于两个值)。
我们可以将具有返回类型的函数声明为对或元组(以所需为准),并且可以打包要返回的值并返回打包的值集。返回的值可以在调用函数解压缩。
元组
- 元组是一个能够容纳元素集合的对象,其中每个元素可以具有不同的类型。
- 类模板
std::tuple
是固定大小的异构值集合
一对
- 此类将一对值(可能是不同类型)耦合在一起
- 一对是带有两个元素的std :: tuple的特殊情况
注意:Tuple也可以用于返回两个值,而不是使用pair。
#include
using namespace std;
// A Method that returns multiple values using
// tuple in C++.
tuple 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 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 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;
}
输出:
Values returned by tuple: 10 5 a
Values returned by Pair: 2 5
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。