所谓的结构化绑定,就是我们可以从复合数据中更加简单方便的提取数据,而不再需要通过索引或成员访问符来获取这些元素。
语法
auto [var1,var2,...] = expression
expression是复合类型的对象,如(元组,数组,结构体)
var1,var2,...是要绑定的变量名
当结构化绑定发生时,编译器会自动将复合类型对象中的成员按顺序分别赋值给对应的变量。变量的类型auto将会自动推导。
用法
元组
结构化绑定tuple
using namespace std;
//元组
tuple<int,double,string> mytuple(10,3.14,"hello world");
auto (a,b,c) = mytuple
cout<<a<<" "<<b<<" "<<c;
数组
结构化绑定array
using namespace std;
//数组
array<int,3> myarry(1,2,3);
auto (x,y,z) = myarry
cout<<x<<" "<<y<<" "<<z;
结构体
结构化绑定struct
using namespace std;
//结构体
struct Person
{
string name;
int age;
};
Person person = {"gxx", 26};
auto (name,age) = person
cout<<name<<" "<<age;