unordered_map简单示例

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
using namespace std::tr1;
/*
在c++11以前要使用unordered_map需要
#include//在unordered_map之前加上tr1库名,
using namespace std::tr1;//加上命名空间
c++11之后
#include
*/
struct node{
    int x, y;
};
struct myHash{ //重载哈希函数
    size_t operator()(const node &b) const {
        size_t h = b.x * 10000 + b.y + 100000000;
        return h; //此处要注意,返回的是一个无符号整型,不能出现负数
    }
};
struct myEqual{ //重载==
    bool operator()(const node &a, const node &b) const {
        return a.x == b.x && a.y == b.y;
    }
};
int main(){
    unordered_map ump;
    node a, b;
    a.x = 1;
    a.y = 2;
    b.x = 1;
    b.y = 2;
    ump[a] = 6;
    puts(ump[b] == 6 ? "y" : "n");
    return 0;
}

其余用法基本和map相同。

你可能感兴趣的:(语言基础)