首页 > 解决方案 > 检查单元格在矩阵中的位置

问题描述

我有一个 7x7 矩阵(声明为uint8_t*):

x B B B B B x
B S S S S S B
B S S S S S B
B S S S S S B
B S S S S S B
B S S S S S B
x B B B B B x

x边缘在哪里,B边界在哪里S,矩阵的其余部分在哪里。

我需要知道给定单元格i在哪里——在边界、边缘或矩阵内部,如果它在矩阵内部而不在任何边界或边缘上,则对其进行操作。uint8_t**另外,使用多维数组( )会更好吗?

标签: cmatrix

解决方案


至于哪种表示更好,这取决于您的代码的其余部分。无论哪种方式都会奏效。

至于如何从中间分辨边缘,如果i%7 == 0你在左边缘,如果i%7 == 6你在右边缘。如果i < 7你在顶部,如果i >= 56你在底部边缘。如果这些都不是,那么你就在中间。

这就得到了更好的表示方式:那些 mod 操作很慢,所以如果你要做很多这样的事情,那么二维数组会更好。但是,如果您主要只是通过串行索引,则 1-d 应该更快。当然,还有其他考虑因素——这只是需要考虑的事情。


推荐阅读