首页 > 解决方案 > 如何在 c++ 上将具有一定大小的数组填充到另一个更大的数组中?

问题描述

我正在尝试将一组角度填充到另一个具有更多元素的角度:

uint16_t _sector[SECTORS_MAX] = {0, 45, 90, 135, 180, 225, 270, 315};

这个想法是,我有另一个包含 72 个元素的数组,而上面的这个只有 8 个元素,上面的每个角度代表一个扇区,因此 72 个元素的数组每个扇区将有 9 个角度而不是一个,其中每个 9 个角度代表一个部门。我如何制作一个能够做到这一点的循环?

标签: c++arraysloopspopulate

解决方案


由于每个扇区有 9 个角度,因此您还需要#define ANGLES_MAX

#define SECTORS_MAX 8
#define ANGLES_MAX 9

然后,您需要使用二维数组来存储角度:

uint16_t SectorAngles[SECTORS_MAX][ANGLES_MAX];

假设包含 72 个角度的数组的名称是TotalAngles 这样定义的:

uint16_t TotalAngles[72];

现在您可以像这样复制角度 from TotalAnglesto SectorAngles

for(int i = 0; i < SECTORS_MAX; i++)
{
    for(int j = 0; j < ANGLES_MAX; j++)
    {
        SectorAngles[i][j] = TotalAngles[i*8 + j];
    }
}

推荐阅读