C++ 结构化绑定声明 auto [...]

pair<int, int> generate() {
    return {1, 2};
}
auto [a, b] = generate();
// a=1, b=2

在刷算法题时遇到这种写法,这种语法称为 “结构化绑定声明”(Structured binding declaration)

右值可以是数组(普通数组或std::array)、pair、tuple甚至一个struct类型,但是注意必须是要能在编译期间就确定长度的类型。

这应该是C++17引入的新语法,C++11目前应该还不支持。

具体可参考:https://en.cppreference.com/w/cpp/language/structured_binding

posted @ 2022-08-02 20:22  neumy  阅读(157)  评论(0编辑  收藏  举报