我有一个元组函数,它返回一个形式为
的元组<node*,int>
有没有一种方法可以在不创建另一个元组的情况下一次存储 2 个值。我知道我们可以做到
n,score=tuplefunct(abc);
在 python 中。但是如果我想在 C++ 中存储两个返回值而不创建另一个元组,我需要调用两次
n=get<0>(tuplefunct(abc);
score=get<1>(tuplefunct(abc));
在 C++ 中是否有任何替代方法来一次存储值。
最佳答案
您不需要调用该函数两次(请注意,不涉及“另一个元组”,该函数返回一个,这就是您使用的):
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);
关于c++ - 从元组函数一次存储 2 个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53669403/