代码如下:
class CmapPtrToPtr
{
protected:
struct CAssoc
{
CAssoc* pNext;
void* key;
void* value;
};
public:
........................
UINT HashKey(void* key) const;
void SetAt(void* key,void* newValue);
}inline UINT CMapPtrToPtr::HashKey(void* key) const
{
return ((UINT)(void*)(DWORD)key)>>4;
}inline void CMapPtrToPtr::SetAt(void* key, void* newValue)
{
(*this)[key] = newValue;
}这是书上一道浅析windows映射机制的程序代码,有几个地方令人费解,望高人指点,
问题一:
((UINT)(void*)(DWORD)key)应如何理解,这个函数是给定key值计算哈希值。
问题二:
(*this)[key] = newValue;怎么理解,这个函数书上说是添加一个(key,value)对,不太明白。