迭代一对向量的简单方法

Easy way to iterate over a vector of pair of pair

是否有一种简单的方法可以使用 auto 迭代 pair 对的向量?

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

for(auto [x, y,z] : vec)

但是我遇到了一个错误。有简单的方法吗?

for(auto [[x,y],z] : vec)

也报错

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

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

你可以这样写:

for (auto & [p, z] : vec) 
{
  auto & [x, y] = p;
  // ... use x, y, z
}