一个万用的hash function

  • 哈希函数:
      一般的线性表,树中,记录在结构中的相对位置是随机的,既和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较”的基础上,查找的效率依赖于查找过程中所进行的比较次数。理想的情况下是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立的对应关系f。使每个关键字的结构中一个唯一的存储位置相对应。
      下面从侯捷老师的书中摘取了一部分的关于一个万用的Hash Function 的实现形式:
#include<functional>
class Customer {
    ...;
};

//CustomerHash 的形式一
class CustomerHash {
public:
    std::size_t operator ()(const Customer &c)const
    {
        return ...;
    }
};
unordered_set<Customer, CustomerHash>custset;

/*  
//CustomerHash 的形式二
size_t customer_hash_func(const Customer& c){
return ...;
};

unordered_set<Customer,size_t(*)(Customer&)>custset(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值