我试图做类似的事情:
int iArray[16];
int iOtherArray[16];
for ( auto &i: iArray )
{
iOtherArray[i] = iArray[i];
}
for for循环遍历数组所具有的组件数,而不是每个单独的组件。我是否正确理解基于范围的for循环的用法?
答案 0 :(得分:1)
不,基于范围的循环将为您提供元素值,而不是索引。
对于像这样的复制操作,基于范围的循环是一个糟糕的选择,因为你必须跟踪两个范围并希望每个范围的相应元素。只需使用正常的for循环。
for(int i = 0; 16 > ndx; ++ndx)
otherArray[i] = array[i];
答案 1 :(得分:1)
您可以使用标准库中的复制算法:
std::copy(array, array+16, otherArray);