布隆过滤器:实现代码
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,#pragma once#include #include "BitMap.h"struct HashFunc1{ size_t BKDRHash(const char *str)
千家信息网最后更新 2026年11月03日布隆过滤器:实现代码
#pragma once#include#include "BitMap.h"struct HashFunc1{ size_t BKDRHash(const char *str) { register size_t hash = 0; while (size_t ch = (size_t)*str++) { hash = hash * 131 + ch; // 也可以乘以31、131 return hash; } } size_t operator()(const string& s) { return BKDRHash(s.c_str()); }};struct HashFunc2{ size_t SDBMHash(const char *str) { register size_t hash = 0; while (size_t ch = (size_t)*str++) { hash = 65599 * hash + ch; } return hash; } size_t operator()(const string& s) { return SDBMHash(s.c_str()); }};struct HashFunc3{ size_t RSHash(const char *str) { register size_t hash = 0; size_t magic = 63689; while (size_t ch = (size_t)*str++) { hash = hash * magic + ch; magic *= 378551; } return hash; } size_t operator()(const string& s) { return RSHash(s.c_str()); }};struct HashFunc4{ size_t APHash(const char *str) { register size_t hash = 0; size_t ch; for (long i = 0; ch = (size_t)*str++; i++) { if ((i & 1) == 0) { hash ^= ((hash << 7) ^ ch ^ (hash >> 3)); } else { hash ^= (~((hash << 11) ^ ch ^ (hash >> 5))); } } return hash; } size_t operator()(const string& s) { return APHash(s.c_str()); }};struct HashFunc5{ size_t JSHash(const char *str) { if(!*str) return 0; register size_t hash = 1315423911; while (size_t ch = (size_t)*str++) { hash ^= ((hash << 5) + ch + (hash >> 2)); } return hash; } size_t operator()(const string& s) { return JSHash(s.c_str()); }};template class BloomFilter{public: BloomFilter(size_t size) :_bitMap(size) ,_capacity(size) {} void Set(const K& key) { size_t index1 = __HashFunc1()(key); size_t index2 = __HashFunc2()(key); size_t index3 = __HashFunc3()(key); size_t index4 = __HashFunc4()(key); size_t index5 = __HashFunc5()(key); cout< countMap; /*vector _v;*/};void Test1(){ BloomFilter<> bf(-1); bf.Set("http://www.cnblogs.com/-clq/archive/2012/05/31/2528153.html"); bf.Set("http://www.cnblogs.com/-clq/archive/2012/05/31/2528154.html"); bf.Set("http://www.cnblogs.com/-clq/archive/2012/05/31/2528155.html"); bf.Set("http://www.cnblogs.com/-clq/archive/2012/05/31/2528156.html"); cout< 以上
代码
过滤器
布隆
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网络科技
互联网巨头科技公司
互联网科技的发展
期待互联网科技
礼当家互联网科技
互联网科技公司官网
鑫亿盛互联网科技
极限挑战互联网科技
壕鑫互联网络科技
奔汉互联网科技
卓越科技互联网 招聘
哈尔滨新华互联网科技
无锡溥仪互联网科技有限公司
互联网科技寓意
湖北码尼互联网科技有限公司电话
崇明区互联网教育科技售后服务
互联网科技和信息
上海科技产业互联网平台
上海互联网科技公司ppt
北京瑞云互联网科技有限公司
河南真二互联网科技有限公司
互联网巨头科技公司
互联网科技公司电话
上游互联网科技
互联网科技股午盘股票涨跌
互联网对科技的发展
互联网科技研发水平
科技互联网的核心竞争力
互联网科技资金流入
利用互联网等科技手段