c - 检查单元格在矩阵中的位置
问题描述
我有一个 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**
另外,使用多维数组( )会更好吗?
解决方案
至于哪种表示更好,这取决于您的代码的其余部分。无论哪种方式都会奏效。
至于如何从中间分辨边缘,如果i%7 == 0
你在左边缘,如果i%7 == 6
你在右边缘。如果i < 7
你在顶部,如果i >= 56
你在底部边缘。如果这些都不是,那么你就在中间。
这就得到了更好的表示方式:那些 mod 操作很慢,所以如果你要做很多这样的事情,那么二维数组会更好。但是,如果您主要只是通过串行索引,则 1-d 应该更快。当然,还有其他考虑因素——这只是需要考虑的事情。
推荐阅读
- influxdb - 如何在 Flux (InfluxDB) 中将字符串列一分为二
- linux - 我需要打印名称为变量的列表的第 n 个元素(在 foreach 块内)tcl
- python - python 上的 Spotify API 授权错误
- ruby-on-rails - 如何使用日期作为 rake 任务的参数
- tomcat - 未找到 Tomcat 9 管理器/html
- mysql - 在 MySQL 中对超过 2 个表执行 INNER JOIN
- swift - LineCharts 不显示来自 Realm 的数据
- android - Androids Bugreport 中包含什么?
- python-3.x - 通过用户输入 tkinter 编辑当前表值
- python - Conda 安装命令失败