同时遍历2个向量的最佳和最有效的方法是什么?

izz*_*ing 5 c++ for-loop c++11 c++14

我对新的现代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;
}
Run Code Online (Sandbox Code Playgroud)

我可能会有什么:

for (auto header, value : vec1, vec2)
{
    http_client.add_header(header, value);
}
Run Code Online (Sandbox Code Playgroud)

我原以为这会明确地声明我的两个向量必须是相同的长度,因此检查可以自动完成.而且这可以以最有效的方式实现(毕竟我确信我当前的代码中有许多隐藏的漏洞).不仅如此,我认为多范围的循环声明更容易理解.

有没有这样的东西可用或者我完全忽略了这一点?