2
我知道Ruby中有幾個libraries。但我必須創造我自己的(用於學習目的)。稀疏矩陣的紅寶石哈希
我正在考慮這兩種方法:
散列,而關鍵是在形式
myhash["row.col"]
這樣我就可以使用默認值爲零,當元素不存在的字符串。
或創建一個稀疏類,然後檢查的元素返回其值:
class SparseMatrix < Array
require 'contracts'
include Contracts
attr_accessor :value, :array
attr_reader :row, :col
@@array = Array.new
Contract Num, Num, Num => nil
def initialize(value,row,col)
@value = value
@row = row
@col = col
end
def self.all_instances
@@array
end
Contract Num, Num => Num
def getElement(row,col)
flag = false
array.each do |x|
if x.row == row && x.col == col
return x.value
end
end
0
end
end
我不希望這是主觀的,我不知道對於大多采用的設計模式,這將是一個更合乎邏輯的格式去做? (我的問題是,因爲「row.col」似乎更容易開始,它還涉及到從/到字符串/數字的幾個轉換,它可能會有性能問題(我是ruby的新手,所以我不確定)