hash

    技术2022-05-20  68

    Windows上

    定义一个类,重载两个操作符(此class 转自某csdn网友)

      class hash_comp { public: enum { bucket_size = 4, min_buckets = 8 }; bool operator () (const Point &p1,const Point &p2)const { if (p1.distanceTo(p2) < dZERO) { return true; } return false; } size_t operator()(const Point &pt)const { unsigned long nhash = sqrt(pt.x * pt.x + pt.y * pt.y) * 1000; return (size_t) nhash; } };

     

    然后 stdext::hash_map<KEY, VALUE>

     

    Mac上

    定义两个类,各自重载一个操作符(突然觉得似乎可以定义一个,待会再试试)

    class hash_fun { public: size_t operator() (const KEY& pt) const { ... return (size_t)nhash; } }; class hash_eq { public: bool operator() (const KEY& k1, const KEY& k2) const { if (...) { return true; } return false; } };  

     

    然后 std::hash_map<KEY, VAL>


    最新回复(0)