我有一个元组函数,返回一个格式为
的元组Lib
有没有一种方法可以一次存储2个值而无需创建另一个元组。我知道我们可以做到
<node*,int>
在python中。但是,如果我想将两个返回值都存储在c ++中而不创建另一个元组,则需要调用两次
n,score=tuplefunct(abc);
在c ++中有没有其他替代方法可以一次存储值。
答案 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);