作者ric2k1 (Ric)
看板EE_DSnP
标题Re: [问题] myHash.h
时间Sun Jun 21 19:57:44 2009
※ 引述《uxijgil ()》之铭言:
: 问一下一些观念
: 1. 关於Hash iterator end()
: 这里 pass the end 是指...
: 指向 最後一个有效元素 的後面(ex: null) ?
1F:推 Peter034:其实end()代表哪里不很重要,只要能判断iterator!=end()06/21 04:58
2F:→ Peter034:还有要能让空的时候 begin() == end()06/21 04:59
推文观念正确
: 2. 关於 Hash iterator ++ or --
: 我们可以假设它不会超过 end() or 来到begin()更前面 ?
: 也就是说 , 在操作的时候 , 只会让他到达 end() 就停 , 不会再故意更前进 ?
可以
: 除此之外 , 在等於begin()的时候 , 不会再刻意地往前 ?
: 还是说 , 我们要额外把这种情况考虑进去 ?
事实上, 因为 begin() 不一定指到第 0 个 bucket 的第 0 个元素,
因此, 较正确的作法是 -- 可以超过 begin() 而停在 pass-the-begin 的 element 上
但是我想这点当初 spec 没有定义清楚, 所以大家就自行定义好了, 我们只会测 ++
: 3. 如果 Hash 现在一个有效元素都没有
: 这时候要让 begin() = end() ?
Yes
: 4. 关於 Hash function or Cache function
: Hash or Cache function 的实现是要在 Hash or Cache 的 class 下运作 ?
: 否则好像没办法 Access 到 size的资讯
: 是要利用类似 bucketNum(...) 来算出落在哪一栏吗 ? (感觉像这样...?)
: 所以Cache那边其实也是要自己加一个类似的 cacheNum(...) ?
Because Hash & Cache is used as a container class,
the Hash & Cache functions should be defined in the scope of the
HashKey/CacheKey. Actually Hash & Cache functions are the overloaded ()
operators in the HashKey/CacheKey classes.
The Hash and Cache functions return a size_t, NOT a number between
Hash::_numBuckets or Cache::_size. It is modulated by the Hash::_numBuckets
or Cache::_size WITHIN the Hash and Cache classes for the bucket index.
The Hash/Cache functions should be independent of the Hash::_numBuckets
or Cache::_size. That is, the HashKey/CacheKey should not be aware of the
Hash::_numBuckets or Cache::_size because the Hash::_numBuckets or
Cache::_size may change while the Hash & Cache functions should remain the
same for the same type of HashKey/CacheKey.
: 麻烦了 , 谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.46.108
3F:推 uxijgil:谢谢 , 明白了 ! 06/21 21:23