结构化绑定允许生命多个变量,这些变量使用数组、结构体、pair或者元组中的元素以初始化。
可声明三个变量x、y和z,像下面这样使用数组的3个值进行初始化。注意,必须为结构化绑定使用关键字auto。
array values { 11, 22, 33};
auto [x, y, z] { values }
//x == 11 y == 22 z == 33
使用结构化绑定的变量数量必须与右侧表达式中的值数量匹配。
如果所有非静态成员都是公有的,也可以将结构化绑定用于结构体。
struct Point { double m_x, m_y, m_z};
Point p { 1.1, 2.2, 3.3 };
auto [z, y, z] { p };
将pair中的元素分解为单独的变量。
pair p { "hi", 5 };
auto [theString, theInt] { p };
通过使用auto&或const auto&代替auto,还可以使用结构化绑定语法创建一组非const的引用或者const引用。