C++:从数组中设置多个变量

mre*_*elt 1 c++ arrays c++11 c++14 c++17

我有以下程序:

#include <iostream>
using namespace std;

int main()
{
    int array[] = {1, 2, 3};
    int a = array[0],
        b = array[1],
        c = array[2];

    cout << c << endl;
}
Run Code Online (Sandbox Code Playgroud)

这打印3,到目前为止一切都很好.但是我想知道是否有更优雅的语法可以同时从数组中声明多个变量.例如(只是一个想法,不编译):

int [a, b, c] = array;
Run Code Online (Sandbox Code Playgroud)

在C++或其中一个新标准中是否有这样的功能?我不可能是唯一一个看它的人.

或者:从一个数组中一次设置多个变量的最优雅方法是什么?

Vit*_*meo 6

在C++ 17中,您可以使用结构化绑定 - 它们的语法与您发布的非常类似:

auto [a, b, c] = array;
Run Code Online (Sandbox Code Playgroud)

wandbox上的实例


最接近C++ 11/14的是std::tie,但不幸的是它不适用于数组:它只支持std::tuple.但是,您可以使用元编程来创建一个实用程序,该实用程序从数组创建元组,然后tie在其上使用.还有在这个答案可能实现的WF.