问题描述
是否有一种简单的方法可以使用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
}