繁体   English   中英

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

[英]Splitting an array into multiple arrays c++

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

例如arr1保留mainArr的0-9值,arr2保留10-19 ....

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

更通用一点:

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

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

然后将mainArr[10]作为arr[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解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM