首页 > 代码库 > C++ pb_ds库之hash

C++ pb_ds库之hash

 pb_ds库之hash

最近在做hash的模板题,自己手打的的hash代码长还容易出错。

但STL中有一个pb_ds库,里面的hash函数和手打的hash速度差不多,比STL中的map快多了。

与大家分享一下,不足之处还请各位神犇指出和补充。

本文只是简略地介绍此函数在hash中的应用,若想深入研究,这里有一个:C++的pb-ds库在OI中的应用

网址:https://wenku.baidu.com/view/ffc18b542f60ddccdb38a00d.html?pn=NaN

pb_ds库hash函数需要调用的的头文件:

#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
using namespace __gnu_pbds;

函数声明方式:

cc_hash_table<int,bool>h;
gp_hash_table<int,bool>h;

其中所定义的两种数据类型不局限于<int,bool>,<string,bool>,<string,int>都可以。

cc_hash_table是拉链法

gp_hash_table是查探法

查探法要快一些,个人推荐用查探法。

补充:

pb_ds库中的两种hash函数比map的效率大大提高,比起手打hash代码简洁且易于调试。

个人觉得如果追求速度的话个人觉得还是手打hash快一点。

C++ pb_ds库之hash