Jon*_*ovi 5 c++ recursion tuples return
我有一个元组函数,它返回以下形式的元组
<node*,int>
Run Code Online (Sandbox Code Playgroud)
有没有办法一次存储 2 个值而不创建另一个元组。我知道我们可以做到
n,score=tuplefunct(abc);
Run Code Online (Sandbox Code Playgroud)
在Python中。但是如果我想在 C++ 中存储两个返回值而不创建另一个元组,我需要调用两次
n=get<0>(tuplefunct(abc);
score=get<1>(tuplefunct(abc));
Run Code Online (Sandbox Code Playgroud)
在 C++ 中是否有任何替代方案可以立即存储值。
您不需要调用该函数两次(请注意,不涉及“另一个元组”,该函数返回一个,这就是您所使用的):
auto x = tuplefunct(abc);
auto n = get<0>(x);
auto score = get<1>(x);
Run Code Online (Sandbox Code Playgroud)
如果您有 C++17 可用,您可以使用结构化绑定
auto [n,score] = tuplefunct(abc);
Run Code Online (Sandbox Code Playgroud)
或者,要接近没有 C++17 的情况,您可以使用std::tie(从 C++11 开始):
node* n;
int score;
std::tie(n,score) = tuplefunct(abc);
Run Code Online (Sandbox Code Playgroud)