unorder_map添加自定义类型

#include <bits/stdc++.h>
using namespace std;
struct Data
{
    int val;
    Data(int _val):val(_val){}
};


//重载hash函数 放入到容器中
struct HashFunc
{
    std::size_t operator()(const Data &key) const
    {
        using std::hash;
        return hash<int>()(key.val);
    }
};
//实现比较函数,用来解决碰撞问题
struct EqualKey
{
    bool operator () (const Data &lhs, const Data &rhs) const
    {
        return lhs.val  == rhs.val;
    }
};

int main()
{
    unordered_map<Data, Data, HashFunc, EqualKey> datamap;
    datamap.insert(make_pair(Data(0), Data(1)));
    datamap.insert(make_pair(Data(2), Data(3)));
    datamap.insert(make_pair(Data(4), Data(5)));
    datamap.insert(make_pair(Data(6), Data(7)));
    auto it = datamap.find(Data(4))->second;
    cout << it.val<< endl;
}

猜你喜欢

转载自www.cnblogs.com/randyniu/p/9470387.html
今日推荐