迭代一对向量的简单方法

Whi*_*ife 4 c++ auto

有没有一种简单的方法可以使用 迭代一对对的向量auto

我有一个vector<pair<pair<int,int>, int>> vec并且想要迭代类似的东西。

for(auto [x, y,z] : vec)
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误。有没有简单的方法来做到这一点?

for(auto [[x,y],z] : vec)
Run Code Online (Sandbox Code Playgroud)

也会报错。

Ris*_*ngh 6

您可以尝试如下所示的操作。

for (auto& it: vec) {
  auto[x, y, z] = tie(it.first.first, it.first.second, it.second);
}
Run Code Online (Sandbox Code Playgroud)

  • 我不会将名称“it”用于非迭代器类型(作为对(或对))。 (6认同)