HashTable

struct HashTable
{
    const int M = 17680321
    int key[M], val[M];
    HashTable()
    {
        memset(key, -1, sizeof key);
    }
    inline int loc(int k) const
    {
        int h = k%M;
        while(~key[h]&&key[h]^k) h=h+1==M?0:h+1;
        return h;
    }
    int& operator[](int k)
    {
        int h = loc(k);
        if(!~key[h]) key[h]=k;
        return val[h];
    }
}table;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。