之前玩了玩bp_ds库,发现它的确有好用之处,却也有一些缺陷。
这里只介绍了一些常用用法,详情请见:https://gcc.gnu.org/onlinedocs/libstdc%2B%2B/ext/pb_ds/
1、hash
pbds自带两种hash,分别用的拉链法和查探法,后者要快一些(和我手打的差不多),而且空间更少(见后文例题),所以推荐后者。
头文件:
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
用法:
cc_hash_table是拉链法
gp_hash_table是查探法
除了当数组用外,还支持find和operator[]
例如:__gnu_pbds::gp_hash_table<int,bool> h;
例题:
codevs 1230 元素查找
http://codevs.cn/problem/1230/
我分别测试了一下两种hash
上面