简单的方法来对对向量

问题描述

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

我有一个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,z
}