我对新的现代C ++标准感兴趣。 因此,我已经用适用的新的基于范围的for循环替换了所有旧的for循环。
然而,我最近遇到了一些似乎不起作用的事情。虽然我认为这将是对已经完成的工作的简单扩展。我只是想知道我是否遗漏了什么?我的问题: 我有2个相同大小的信息向量,用于存储来自我们的3d方组件之一的HTTP标头。我需要循环这两个以将标头添加到我的http客户端。
目前我的代码类似于以下内容:
auto iter1 = vec1.begin();
auto iter2 = vec2.begin();
while (iter1 != vec1.end())
{
http_client.add_header(*iter1, *iter2);
++iter1;
++iter2;
}
我可能会提供什么:
for (auto header, value : vec1, vec2)
{
http_client.add_header(header, value);
}
我原以为这会明确地声明我的两个向量必须是相同的长度,因此检查可以自动完成。而且这可以以最有效的方式实现(毕竟我确信我当前的代码中有许多隐藏的漏洞)。不仅如此,我认为多范围的循环声明更容易理解。
是否有这样的东西已经可用或者我完全忽略了这一点?