我有一个数组A [8] = {0}; 另一个数组B [20] = {0};
我想将所有值从B [12 ... 20]移动到A [0 ... 8]。我怎样才能准确地改变指数?有公式吗? 所以B [12] - > A [0] B [13] - > A [1]
谢谢。
答案 0 :(得分:7)
使用std::copy
。它也适用于用户定义的类型:
std::copy(B+12, B+20, A);
或者,在c ++ 11中,
std::copy(std::next(B,12), std::end(B), std::begin(A));
答案 1 :(得分:6)
你应该在这里使用std::copy
,无论数组中的元素类型如何(说明哪种类型,你没有显示该类型 - 问题语法无效),这将正常工作。
std::copy(B + 12, B + 20, A);
答案 2 :(得分:2)
只需写一个循环
int offset = 12;
int lenA = 8;
for(int i=0; i < lenA; i++) {
A[i] = B[i+offset];
}
答案 3 :(得分:1)
memcpy(A, B + 12, 8 * sizeof(A[0]));
应该可以解决问题。
假设A和B都是相同的类型。