* and -
と入力した行列があります。*
はウイルスを表し、-
はウイルスのフリースポットです。私はすべてのウイルスの近隣隣人は別のウイルスであり、その数を確定するためにフリースポットではありません。私がチェックしなければならない隣人は、[row + 1][col]
,[row - 1][col]
,[row][col + 1]
および[row][col - 1]
であり、合計4つの隣人である。私は、すべてのケースをチェックしてカバーする関数を作った。たとえば、私が調べている要素が行列の隅の1つである場合など。私はif
ステートメントをたくさん持っている、本当に長い80行の関数を考え出しました。 のような文を書く以外に、これをすべてチェックする効率的な方法(行数を意味する)はありますか?ここで行列のセル値の近傍を調べる
https://pastebin.com/2f7YpreZは、私はあなたが何ができるか
あなたは仕事をしていますが、非効率的なような機能を持っていますか?適切なサイトでcodereviewを試してください。 https://codereview.stackexchange.com – Yunnosch
ここに誰かがあなたの既存のコードで一番役に立たないデザイン問題を見つけたければ、[mcve]を作ってください。 – Yunnosch
'20個のif文のように書かなくても、これをすべてチェックする効率的な方法はありますか? 'うーん、'効率的なものを定義してください。パフォーマンス面では?コード行数の点では?保守性の面では?パフォーマンスを参照する場合は、コンパイラを信頼してください。要件が満たされていない場合は、コードをプロファイルし、それに応じて調整します。 – 4386427