two ways to customize unordered_set

         auto hash = [](const pair_type &p) {
                return std::hash<int>{}(p.first) ^ std::hash<int>{}(p.second);
            };

        auto equal = [](const pair_type &a, const pair_type &b) -> bool {
            return a.first == b.first && a.second == b.second || a.first == b.second && a.second == b.first;
        };

        unordered_set<pair_type, decltype(hash), decltype(equal)> connected_map(10, hash, equal);
struct MyHash
{
    std::size_t operator()(const pair_type &p) const // tj : note the const function qualifier is crucial
    {
        return std::hash<int>{}(p.first) ^ std::hash<int>{}(p.second);
    }
};


struct MyEqual
{
    bool operator()(const pair_type& a, const pair_type& b) const // tj : note the const function qualifier is crucial
    {
        return a.first == b.first && a.second == b.second || a.first == b.second && a.second == b.first;
    }
};


unordered_set<pair_type, MyHash, MyEqual> connected_map;

https://stackoverflow.com/questions/73872919/does-unordered-set-not-support-unordered-setvectorint-or-unordered-setpa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值