相关疑难解决方法(0)

为什么C++ 17结构化绑定不使用{}?

我在这里找到了*C++结构化绑定的原始提议.它提出了一种轻松绑定多个返回值的方法,即:

auto {a, b} = minmax(data);
Run Code Online (Sandbox Code Playgroud)

但现在我看到每个人都指向C++ 17/C++ 1z提议语法

auto [a, b] = minmax(data);
Run Code Online (Sandbox Code Playgroud)

既然我已经学会了"列表被编写{like,this}",那么会出现一个新的列表语法?为什么?花括号有什么问题?

c++ c++17 structured-bindings

51
推荐指数
4
解决办法
5360
查看次数

C++ 使用解构迭代对向量

我遇到了以下代码:

vector<pair<int, int>> vec;
//...
for (auto &[f, s] : vec)
{
  //do something with f and s
}
Run Code Online (Sandbox Code Playgroud)

这个语法是如何工作的([f, s] : vec),以及它引入了什么标准?我可以用它从任何结构/类中获取字段值还是它特定于元组/对?

另外,这种方法的性能影响是什么?

在 C++11 中,我以下列方式使用 auto:

for (auto &it : vec)
{
  //do something with it.first and it.second
}
Run Code Online (Sandbox Code Playgroud)

c++

5
推荐指数
1
解决办法
1085
查看次数

标签 统计

c++ ×2

c++17 ×1

structured-bindings ×1