将数组中的值复制到另一个不同的大小

Han*_*Goc 0 c++ arrays

我有一个数组A [8] = {0}; 另一个数组B [20] = {0};

我想将所有值从B [12 ... 20]移动到A [0 ... 8].我怎样才能准确地改变指数?有公式吗?所以B [12] - > A [0] B [13] - > A [1]

谢谢.

jua*_*nza 7

使用std::copy.它也适用于用户定义的类型:

std::copy(B+12, B+20, A);
Run Code Online (Sandbox Code Playgroud)

或者,在c ++ 11中,

std::copy(std::next(B,12), std::end(B), std::begin(A));
Run Code Online (Sandbox Code Playgroud)


Jon*_*Jon 6

你应该std::copy在这里使用,无论你的数组中的元素类型如何都可以正常工作(说到哪些,你没有显示那种类型 - 问题的语法无效).

std::copy(B + 12, B + 20, A);
Run Code Online (Sandbox Code Playgroud)