#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; //泛型定义,string为key,Book为value
    Book b("001","高级语言程序设计") ;
    lib[b.getNum()] = b; //放入键值对,key为: b.getNum(),value为b
    unordered_map<string,Book>::iterator it; //声明迭代器用于访问
    it  = lib.find( *(new string("001")) ); //find(KeyType &key),用key去匹配并返回该key的迭代器, 没有的话返回迭代器末尾
    if ( it != lib.end() )
        cout << (it ->second).getName(); //迭代器访问第二个项目,即value的所在项,此处为一个book类型,对其调用getName()函数
    else
        cout << "没有给元素!";

    return 0;
}

note:

1.内部实现为: hasht_table

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

 

posted on 2017-03-12 11:18  小明在努力  阅读(797)  评论(0编辑  收藏  举报