我可以在C++中同时分配2个变量吗?

geo*_*ano 12 c++

int DFS(a, b,c,d)
{
    first=a+b;
    second=c+d;
    return(first,second);
}

solution, cost_limit = DFS(a, b,c,d);
Run Code Online (Sandbox Code Playgroud)

我可以这样做吗?如何?

fil*_*mor 20

在C++ 11中,您可以使用元组类型tie.

#include <tuple>

std::tuple<int, int> DFS (int a, int b, int c, int d)
{
    return std::make_tuple(a + b, c + d);
}

...

int solution, cost_limit;
std::tie(solution, cost_limit) = DFS(a, b, c, d);
Run Code Online (Sandbox Code Playgroud)

  • 如果C++ 11不是一个选项,[Boost Tuple库](http://www.boost.org/doc/libs/release/libs/tuple/doc/tuple_users_guide.html)提供了这些功能. (3认同)

zty*_*reg 15

使用 C++17,您可以解压一对或元组

auto[i, j] = pair<int, int>{1, 2};
cout << i << j << endl; //prints 12
auto[l, m, n] = tuple<int, int, int>{1, 2, 3};
cout << l << m << n << endl; //prints 123
Run Code Online (Sandbox Code Playgroud)