码迷,mamicode.com
首页 > 编程语言 > 详细

c++数据结构 --unorder_map

时间:2017-03-12 13:30:27      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:his   unsigned   lib   哈希   程序   ini   closed   compare   字符   

#include <iostream>
#include <unordered_map>
using namespace std;
class Book
{
private:
    string num;
    string name;
public:
    Book() {};
    Book(string num,string name) { this ->name = name;this ->num = num;};
    string getNum() { return num;};
    string getName() { return name;};
};
int main()
{
    unordered_map<string,Book>lib;
    Book b("001","高级语言程序设计") ;
    lib[b.getNum()] = b;
    unordered_map<string,Book>::iterator it;
    it  = lib.find( *(new string("001")) );
    if ( it != lib.end() )
        cout << (it ->second).getName();
    else
        cout << "没有给元素!";

    return 0;
}
技术分享
unsigned int JSHash(const char *str){
    unsigned int hash = 1315423911;
    while (*str){
        hash ^= ((hash << 5) + (*str++) + (hash >> 2));
    }
    return (hash & 0x7FFFFFFF);
}

class StrHash{
public:
    size_t operator()(const string& s) const {
        return JSHash(s.c_str());
    }
};

class StrCompare{
public:
    bool operator()(const string& a,const string& b) const {
        return (a==b);
    }
};
字符哈希及字符串比较函数

note:

1.内部实现为: hasht_table

2.示例中,已string为key,unorder_map已经为string创建了hash值计算函数,所以无需重写(貌似是这样的)

3.(Todo)详解具体使用方法

c++数据结构 --unorder_map

标签:his   unsigned   lib   哈希   程序   ini   closed   compare   字符   

原文地址:http://www.cnblogs.com/lfm1996/p/6537308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!