Easy way to iterate over a vector of pair of pair

Viewed 181

Is there an easy way to iterate over a vector of pair of pair using auto?

I have a vector<pair<pair<int,int>, int>> vec and want to iterate something like.

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

but I am getting an error. Is there an easy way to do so?

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

also gives an error.

2 Answers

You can try something like shown below.

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

You could write:

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