2

基本的に、私は2Dマトリックスを使用しています。(x、y)ペアを指定してその位置で対応する値を取得することにより、行列の要素にアクセスできます。

また、実行時に任意に決定される特定のペアを追跡できるようにしたいと思います。たとえば、(1,2)、(3,4)、および(5,6)の値を追跡する必要があり、その位置の値を頻繁に取得する必要がある場合があります。

だから私はハッシュを作るのはどうだろうと考えていました。

like_elements = {[1,2] => M [1,2]、[3,4] => M [3,4]、[5,6] => M [5,6]}

またはそのようなもの。

次に、ハッシュをすばやく繰り返し処理して、好きな要素を取得できます。

配列をハッシュキーとして使用することに問題はありますか?

4

3 に答える 3

5

後で配列を変更しないでください(または、変更する場合はハッシュを再ハッシュすることを忘れないでください)。

于 2012-05-16T18:43:14.447 に答える
3

本当に行列 (配列の配列) の場合は、次のように座標を渡すだけです。

matrix = [[:a, :b, :c],[:d, :e, :f], [:g, :h, :i]]
matrix[0][1] # returns :b
matrix[1][2] # returns :f
matrix[2][3] # returns nil, since 3 is out of bounds

はい、配列をハッシュ キーとして作成できます。

h = Hash[[0,1], matrix[0][1]]
h[[0,1]] # returns :b
于 2012-05-16T22:01:57.163 に答える