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

标签 c++ recursion return tuples

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

的元组
<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/

相关文章:

c++ - 对自己的互斥锁类使用lock_guard

javascript - 有关于 'dust js recursion' 的错误吗?

java - 返回数组的一个索引的方法会抛出 NullPointer

java - 创建具有数组返回类型的函数时出错

c++ - 返回函数参数 unique_ptr

c++ - 类构造函数是否具有未定义的行为

c++ - Qt 隐藏空的子菜单

C++ 指针 : changing the contents without changing the address?

java - 递归java方法,获取母亲、祖母、曾祖母等

haskell - 递归未终止