结构化绑定

C++17新增语法,结构化绑定。将一个数据结构class或者struct结构化绑定到变量中。

结构化绑定使用auto 自动推导。不允许显示指定类型,下面的例子可能有所帮助:

1 std::array arr = { 12,13,14 };
2     auto [x, y, z] = arr;                                    // 结构化绑定

此时,x,y,z分别对应数据中的12,13,14,x的类型为int&&,可以在下文中直接使用。

1 struct k {
2         int x = 10;
3         int y = 20;
4     };
5     k h;
6     auto [x1, y1] = h;

此时x1,y1分别对应k结构的x,y。x1的类型为int,可以在下文中直接使用,注意名称唯一性。

注意,结构化绑定必须满足以下要求:

1.绑定的数量必须与结构的数量相同。

2.auto不能主动声明类型。

posted @ 2021-09-16 09:10  大笨瓜  阅读(224)  评论(0)    收藏  举报