如何在 C++11 中的一个循环中迭代两个向量
How to iterate two vectors in one loop in C++11?
#include <vector>
using namespace std;
class A
{
public:
A() = default;
void Add(int n)
{
m_count += n;
}
private:
int m_count;
};
int main()
{
vector<int> coll_1 = {1, 2, 3};
vector<A> coll_2(3);
// Is there a more elegant way to do the "for loop"?
for (int i = 0; i < 3; ++i)
{
coll_2[i].Add(coll_1[i]);
}
return 0;
}
我知道有很多新的方法(即C++11 口味)来完成 for 循环,例如 for_each
、transform
、for (auto& elem : coll)
等。
但是,我找不到一种优雅的方式来完成上述工作。
有什么建议吗?
你想要一些通常被称为"zip"的东西。Boost有一个实现,正如你在这些答案中看到的:
- c++11 的序列 zip 函数?
- 如何使用BOOST_FOREACH同时迭代两个向量?
相关文章:
- 在C++中查找两个向量之间最相似的值
- 如何在C++中从两个向量生成所有可能的对?
- 返回两个向量 – 使用引用还是元组?
- 检查两个向量是否并行的最有效方法
- 如何获得比较两个向量对的子集
- 如何在 c++ 中对两个向量进行线性搜索?
- 如何在 c++ 中从两个向量创建 JSON 对象?
- C++如何同时删除位于两个向量中的 2 个指针?
- 如何通过 stl 容器和算法库计算两个向量的内积?
- 删除两个向量中的重复项
- 两个向量在犰狳中相等?
- 为什么我无法比较自定义类类型的两个向量?
- 通过块比较两个向量时,如何避免重复
- Boost.Test - 如何在交叉点上检查两个向量
- 通过移动从两个向量创建元组向量
- 如何在C 中合并两个向量
- R- armadillo c :用其他两个向量对向量进行排序
- 使用嵌套循环搜索两个向量并查看其属性
- 如何以精度换取速度来评估C++中两个向量的点积符号?(不特定于硬件)
- 我该如何XOR这两个向量的内容