作者ric2k1 (Ric)
看板EE_DSnP
标题Re: [问题] hash 问题
时间Sat Jan 15 15:18:50 2011
※ 引述《yichishao ()》之铭言:
: 爬了一下版对hash还是有点不了解
: 想请问一下
: 1.在class HashKey中 operator == ,是要检查key 一样且gate 的fanin是不是完全一样吗?
Key 一样 (i.e. "==" return true) 应该就是指 fanins 完全一样.
只是说 不一样的 keys 可能透过 hash function (i.e. () operator) 可能会得到
相同的 value, 因此 map 到相同的 bucket,
在上述的情形就是要去比较同一个 bucket 里面有没有 相同 key 的 element
: 2.在class Hash中的 check(HashKey& k, HashData& n)
: if yes, update n and return true; 看了一下之前的讨论还是不太懂update n的用意?
: 这个update的意思是把在hash table 找到的HashData ref 给 n 吗?
因为 key 相同表示同样 fanins 的 gate 以前已经被存在 hash 里头了,
因此,可以直接把之前存的 data 直接 assign 给 n (note: n is passed by ref).
: 3.在replace Insert是说如果有找到一样的fanin 的gate在hash table的话,
: 把原本存在里面的HashNode(k, *) 删掉, 再把 HashNode(k, d) insert进去吗
其实也可以不用删掉,就直接覆盖上去就好了...
: 谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.36.62.203