当前位置: 代码迷 >> VC/MFC >> 怎么高效对一个结构散列化?要装到CMap中
  详细解决方案

怎么高效对一个结构散列化?要装到CMap中

热度:110   发布时间:2016-05-02 03:48:05.0
如何高效对一个结构散列化?要装到CMap中
有一个结构,

struct myStruct
{
    LONG  x;
    LONG  y;
//之后这里可能加入第三个成员
};

-----------------------------------------------------------------------

现在需要做一个CMap类,它的KEY就是这个结构,方便快速查找

可能需要几十亿到几百亿次的生成KEY用于 CMap::Lookup / CMap::SetAt

所以,散列化成KEY的效率要高.


之前,类似的,我一般转成CString("x,y") 的形式,直接使用 CMapStringToOb 来查找.
但这次查找的次数非常多,所以KEY的生成要有较高的效率.
------解决思路----------------------
找hash?
------解决思路----------------------
如果不是字符串,使用合成值作为键值
使用32位值可能比较合适,可以 (x % 65536)<<16+(y % 65536)
------解决思路----------------------
我觉得建立map会花时间  查询比较快吧