码迷,mamicode.com
首页 > 编程语言 > 详细

C++ pb_ds库之hash

时间:2017-07-08 17:46:08      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:16px   div   ble   介绍   space   分享   soc   拉链   color   

 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

标签:16px   div   ble   介绍   space   分享   soc   拉链   color   

原文地址:http://www.cnblogs.com/huihao/p/7137250.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!