从元组函数一次存储2个变量

时间:2018-12-07 12:17:48

标签: c++ recursion return tuples

我有一个元组函数,返回一个格式为

的元组
Lib

有没有一种方法可以一次存储2个值而无需创建另一个元组。我知道我们可以做到

<node*,int>

在python中。但是,如果我想将两个返回值都存储在c ++中而不创建另一个元组,则需要调用两次

n,score=tuplefunct(abc);

在c ++中有没有其他替代方法可以一次存储值。

1 个答案:

答案 0 :(得分:3)

您不需要两次调用该函数(请注意,其中不涉及“另一个元组”,该函数将返回一个,这就是您所使用的):

auto x = tuplefunct(abc);
auto n = get<0>(x);
auto score = get<1>(x);

如果您有C ++ 17,则可以使用structured bindings

auto [n,score] = tuplefunct(abc);

或者要接近没有C ++ 17的情况,可以使用std::tie(从C ++ 11开始):

node* n;
int score;
std::tie(n,score) = tuplefunct(abc);