【发布时间】:2017-06-16 16:53:53
【问题描述】:
我有一个用* and - 填充的矩阵,其中* 表示病毒,- 是病毒的空闲点,我必须在矩阵中检查每个病毒的邻居,有效的邻居是另一种病毒而不是一个免费的地方,以建立他们的号码。我要检查的邻居是[row + 1][col]、[row - 1][col]、[row][col + 1] 和[row][col - 1],总共四个邻居。我创建了一个函数来检查并涵盖所有情况,例如,如果我正在检查的元素是矩阵的角之一。我想出了一个非常长的 80 行函数,其中包含很多 if 语句。
除了必须编写 20 个 if 语句之外,是否有一种有效的方法(即行数)来检查所有这些?
【问题讨论】:
-
您有一个功能可以完成这项工作但似乎效率低下?在适当的站点尝试代码审查。 codereview.stackexchange.com
-
如果您希望有人在这里发现您现有代码中最无用的设计问题,请发送minimal reproducible example。
-
Is there an efficient way to check all this besides having to write like 20 if statements?好吧 - 请定义efficient。在性能方面?就代码行数而言?在可维护性方面?如果您指的是性能,请相信编译器。如果您的要求没有得到满足,请分析您的代码并进行相应调整。 -
@MariusJula - 发布您的代码,以便我们看到您目前拥有的内容
-
我会先做 4 个角,然后是 4 个边缘(除了角),然后是其余的(除了边缘)。不需要测试任何异常。
标签: c performance matrix neighbours coding-efficiency