迭代一对向量的简单方法
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
}
是否有一种简单的方法可以使用 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
}