#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)
等。
然而,我找不到一种优雅的方式来完成上述工作。
有什么建议吗?
答案 0 :(得分:3)
你想要一些通常被称为“拉链”的东西。 Boost有一个实现,正如你在这些答案中看到的那样: