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++或其中一个新标准中是否有这样的功能?我不可能是唯一一个看它的人.
或者:从一个数组中一次设置多个变量的最优雅方法是什么?
在C++ 17中,您可以使用结构化绑定 - 它们的语法与您发布的非常类似:
auto [a, b, c] = array;
Run Code Online (Sandbox Code Playgroud)
最接近C++ 11/14的是std::tie,但不幸的是它不适用于数组:它只支持std::tuple.但是,您可以使用元编程来创建一个实用程序,该实用程序从数组创建元组,然后tie在其上使用.还有在这个答案可能实现的WF.