C++ 11提供了多种迭代容器的方法.例如:
for(auto c : container) fun(c)
Run Code Online (Sandbox Code Playgroud)
for_each(container.begin(),container.end(),fun)
Run Code Online (Sandbox Code Playgroud)
但是,建议的方法是迭代两个(或更多)相同大小的容器来完成以下操作:
for(unsigned i = 0; i < containerA.size(); ++i) {
containerA[i] = containerB[i];
}
Run Code Online (Sandbox Code Playgroud) 我想使用复制数组range for.可能吗?
像(显然不工作)的东西
unsigned arr[15] = {};
unsigned arr2[15];
for (auto i : arr, auto &j : arr2)
j = i;
Run Code Online (Sandbox Code Playgroud)
或者是否有一些其他技巧可以避免操作数组的大小,如果我确定它们具有相同的长度?
UPD 我非常喜欢@PavelDavydov解决方案.但是,任何人都可以提供标准的lib解决方案.C++ 11也包含对和元组.
for (auto pair : std::make_tuple(&arr, &arr2));
Run Code Online (Sandbox Code Playgroud)