auto [dr,dc]=vector
这种用[]方括号的cpp语法是什么版本实现的啊11和17都不行,有没有懂行的老哥。
这种用[]方括号的语法属于C++17的结构化绑定(Structured Binding)特性。它允许将一个复合类型的成员变量绑定到多个单独的变量中,从而可以更方便地访问和操作这些成员变量。
C++17 中,结构化绑定被正式纳入标准库。需要确保你的编译器支持 C++17 标准并启用了相应的特性。
对于你提到的代码,它使用结构化绑定将一个类型为 vector 的对象分解为名为 dr 和 dc 的两个变量。这个代码片段的完整写法可能类似于下面的形式:
vector<int> vector_obj = {1, 2};
auto [dr, dc] = vector_obj;
如果你的编译器不支持 C++17,那么这段代码是无法通过编译的。
auto[dr,dc] = vector 这种语法是C++11中引入的range-based for循环语法,可以用来循环遍历容器中的元素,例如:
vector v = {1,2,3,4,5}; for (auto [dr, dc] : v) { cout << dr << endl; }