Hash_Map

Posted abnk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hash_Map相关的知识,希望对你有一定的参考价值。

1.

技术图片
#include <iostream>
#include <map>
#include <hash_map>

// 对该结构体按照xxx排序,在hash_map中存储name和地址
struct Site
{
    Site(const std::string &n, const std::string &i) : name(n), info(i){}
    std::string name;
    std::string info;
    ~Site(){}
};

// 定义哈希函数。这是散列过程中用到的仿函数。
struct hash_site
{
    size_t operator()(const std::string &str)const
    {
        return __gnu_cxx::__stl_hash_string(str.c_str());
    }
};

// 定义定址函数, 查找时需要用到的仿函数。
struct equal_index
{
    // bool operator()(const std::string &siteName, struct Site *site) const
    bool operator()(const std::string &name, const Site * &site) const
    {
        return site->name == name;
    }
};


int main()
{
    // get Site addr by name.   TBD : get name by Site addr
    __gnu_cxx::hash_map <std::string, Site*, hash_site, equal_index> Sites;
    
    Site s1("alex1", "26");
    Site s2("alex2", "27");
    Site s3("alex3", "28");

    Sites["alex1"] = &s1;

    //std::cout << Sites["ccc"]->info << std::endl;
}
View Code

 

以上是关于Hash_Map的主要内容,如果未能解决你的问题,请参考以下文章

STL 的 hash_map 中的碰撞检测

gcc 中是不是有 stdext::hash_map 的等价物

unordered_map(hash_map)和map的比较

我想在 C++ 中查看 hash_map 示例

Hash_Map

Hash_Map