开发者社区> 问答> 正文

将2D数组映射到1D数组

我想用1D数组表示2D数组。函数将传递两个索引(x,y)和要存储的值。这两个标记将代表一维数组的单个元素,并进行相应设置。我知道一维数组需要具有arrayWidth×arrayHeight的大小,但是我不知道如何设置每个元素。

例如,如何区分(2,4,3)与(4,2,3)?我尝试将数组设置为x * y,但是2 * 4和4 * 2会在数组中产生相同的斑点,我需要它们有所不同。 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 14:29:58 386 0
1 条回答
写回答
取消 提交回答
  • 您需要确定数组元素是以行顺序还是列顺序存储,然后保持一致。http://en.wikipedia.org/wiki/Row-major_order

    C语言对多维数组使用行顺序

    要使用一维数组模拟此情况,请将行索引乘以宽度,然后按以下方式添加列索引:

    int array[width * height];

    int SetElement(int row, int col, int value) { array[width * row + col] = value;
    }

    2020-02-08 14:30:10
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载