将数组拆分为多个数组c ++

时间:2015-11-12 22:27:52

标签: c++ arrays split

将包含50个随机整数的数组(mainArr)拆分为5个不同的数组(每个数组中包含10个整数)的最佳方法是什么?

例如,arr1持有mainArr的0-9值,arr2持有10-19 ....

我已经四处寻找但是一切都将数组分成两个不同的数组。 任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:3)

更通用一点:

int mainArr[50];
int *arr[5];

int i;
for(i = 0; i < 5; i++)
    arr[i] = &mainArr[i*10];

然后访问mainArr[10]作为arr[1][0]

答案 1 :(得分:0)

只需定义一个函数,将每个索引0..49映射到另一个索引0..4。显而易见的功能是除以10.模数5也可以。

int a[50];
int b[5][10];

for (size_t i = 0; i < 50; i++)
  b[i/10][i%10] = a[i];

int a[50];
int b[5][10];

for (size_t i = 0; i < 50; i++)
  b[i%5][i/5] = a[i];

有关重新使用相同内存的示例,请参阅@nnn的解决方案。