0

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

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

谢谢你。

4

4 回答 4

7

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

std::copy(B+12, B+20, A);

或者,在 c++11 中,

std::copy(std::next(B,12), std::end(B), std::begin(A));
于 2013-08-08T10:59:28.747 回答
6

您应该std::copy在此处使用,无论您的数组中的元素类型如何,它都能正常工作(说到这一点,您没有显示该类型——问题的语法无效)。

std::copy(B + 12, B + 20, A);
于 2013-08-08T10:58:35.773 回答
2

简单地写一个循环

int offset = 12;
int lenA = 8;

for(int i=0; i < lenA; i++) {
   A[i] = B[i+offset];
}
于 2013-08-08T11:00:26.483 回答
1

memcpy(A, B + 12, 8 * sizeof(A[0]));应该做的伎俩。

假设 A 和 B 都是同一类型。

于 2013-08-08T10:57:31.197 回答