当前位置: 首页 > wzjs >正文

南京优化网站广西住房城乡和建设厅网站

南京优化网站,广西住房城乡和建设厅网站,做网站如何屏蔽中国的ip,免费建站网站排名位图一般用于需要对大量数据记录其状态。比如,存在或不存在,通过0或1也可以用多个位图记录多种状态,如 01,10,00,11(在两个位图下,可以记录4种状态,当然也可以横向记录&a…

位图一般用于需要对大量数据记录其状态。比如,存在或不存在,通过0或1也可以用多个位图记录多种状态,如 01,10,00,11(在两个位图下,可以记录4种状态,当然也可以横向记录,比如将某个位图的4个位记录状态,这样可以最多记录16种状态)

位图的关键就是0和1之间的改变,并且不影响其他位的数值。

namespace GuYu
{class bitset{public:bitset():_num(0){ }void set(size_t n){if (n / 32 + 1 > _v.size()){_v.resize(n / 32 + 1, 0);}size_t Index = n / 32;size_t Pos = n % 32;_v[Index] = _v[Index] | (1 << Pos);}void reset(size_t n){size_t Index = n / 32;size_t Pos = n % 32;_v[Index] = _v[Index] &(~(1 << Pos));  //  1000000->0111111// _v[Index]=(_v[Index]|(1<<Pos))^(1<<Pos)}bool test(size_t x){size_t Index = x / 32;size_t Pos = x % 32;int num = (_v[Index] & (1 << Pos)) >> Pos;if (num == 1){return true;}return false;}private:vector<int> _v;size_t _num;};
}

Bloom_Filter布隆过滤器

Bloom_Filter实际是为了解决不同的非size_t的数据通过哈希算法映射到同一位置引发的哈希冲突。

通过不同的方式将(拿string举例)string映射到多个位置(多个位置的位设为1),布隆过滤器不支持删改,当某个位被多个值映射了,删除会影响其他值的检查。

struct hash1str
{size_t operator()(const string& key){size_t num = 0;for (int i = 0; i < key.size(); i++){num += key[i];}return num;}
};
struct hash2str
{size_t operator()(const string& key){size_t num = 0;for (int i = 0; i < key.size(); i++){num *= 31;num += key[i];}return num;}
};
struct hash3str
{size_t operator()(const string& key){size_t num = 0;for (int i = 0; i < key.size(); i++){num *= 11;num += key[i];}return num;}
};template<class K=string,class hash1=hash1str,class hash2=hash2str,class hash3=hash3str>
class BloomFilter
{
public:void set(const K& key){//  通过不同的哈希计算方式,使key不同,映射到不同的位置size_t index1 = hash1()(key);size_t index2 = hash2()(key);size_t index3 = hash3()(key);//  对_bf的这三个位置修改_bf.set(index1);_bf.set(index2);_bf.set(index3);}bool test(const K& key){size_t index1 = hash1()(key);if (_bf.test(index1) == false){return false;}size_t index2 = hash2()(key);if (_bf.test(index2) == false){return false;}size_t index3 = hash3()(key);if (_bf.test(index3) == false){return false;}return true;}private:bitset _bf;
};

如何优化布隆过滤器,使其支持删除操作?

将位改为计数器,vector<unsigned char> vc,当映射到了vc[index],v[index]++ (v[index<255)。

 // 添加元素void add(const string& item) {for (size_t i = 0; i < hash_count; ++i) {size_t index = hash(item, i);if (counters[index] < 255) {  // 防止计数器溢出++counters[index];}}}// 删除元素void remove(const string& item) {for (size_t i = 0; i < hash_count; ++i) {size_t index = hash(item, i);if (counters[index] > 0) {--counters[index];}}}

http://www.dtcms.com/wzjs/586830.html

相关文章:

  • 我想给企业做网站怎么做打开百度竞价页面是网站是什么
  • 网站备案通过后怎么办手机流畅优化软件
  • 世界服装鞋帽网免费做网站第一次做网站没头绪
  • 徐州人才网官方网站百度指数关键词工具
  • 文章类网站模板品牌运营
  • 西安网站开发制作南磨房做网站公司
  • 公司名注册查询网站劳务派遣许可证
  • ae做的动效怎么放在网站上app免费下载入口
  • 二七网建站宁波海曙网站建设
  • 装修公司营销型网站建设php建站软件
  • 在招聘网站做销售怎么样网站播放图片多大合适
  • 网站充值链接怎么做小程序定制开发app
  • 做seo网站地图重要吗哪家公司做网站正规
  • 佛山网站制作咨询虚拟网站怎么做
  • 网站后台出现乱码遨翔网站建设
  • 做网站怎样调用支付宝接口织梦映像
  • 最新网站建设合同西安计算机培训机构哪个最好
  • 代码编辑器做热点什么网站好做网站时字幕怎么做
  • 海南网站推广建设wordpress分城市访问
  • 锡盟本地网站建设wordpress+后门检查
  • 烟台做网站优化哪家好做效果图常用的网站有哪些软件
  • 淘宝网站建设违规吗做网站花都
  • 山东免费网站建设手机网站管理工具
  • 无锡网站建设上海韵茵模版网站做支付功能
  • 东莞网站排名推广找人做网站需要准备什么材料
  • 站长工具下载app品牌设计属于平面设计吗
  • 珠海网站建设怎样东莞网站建设部落
  • asp网站密码电子商务网站有哪些
  • 网站开发的职责与分工室内设计3d效果图用什么软件
  • 深圳网站建设公司佰达企业邮箱app