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

时间:2015-08-11 08:32:33

标签: c++ c++11 for-loop 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;
}

我可能会提供什么:

for (auto header, value : vec1, vec2)
{
    http_client.add_header(header, value);
}

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

是否有这样的东西已经可用或者我完全忽略了这一点?

0 个答案:

没有答案