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

一个虚拟空间做两个网站中国建设工程造价管理系统

一个虚拟空间做两个网站,中国建设工程造价管理系统,网站备案后经营,公众号怎么弄好看的模板位图一般用于需要对大量数据记录其状态。比如,存在或不存在,通过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/a/450213.html

相关文章:

  • 网站开发与网页制作的区别自助企业建站模板
  • 【LeetCode热题100(35/100)】LRU 缓存
  • 长沙网站seo推广中华商标交易网官方网站
  • 如何利用单北斗变形监测提升地质灾害预警能力?
  • 制作广告网站的步骤加强公司网站建设
  • 同字形结构布局网站电子商务网站开发毕业设计
  • 博物建设公司网站网上找家装设计师
  • 建设网站的多少钱定安网站制作
  • MySQL的MHA高可用集群解决方案应用实战(下)
  • 图说刚体运动概念凸显须重新认识测度论和“点无大小,线无宽度”公理
  • 人防网站建设查国外企业信息的网站
  • 做旅游网站的目的是什么wordpress批量修改文章内的代码
  • 禅城网站建设免费网站制作 优帮云
  • cms网站建设有多少条数据wordpress 框架解析
  • 网站的推广优化赣州网站建设哪家好
  • 智能建站系统怎么更换网站模板wordpress国产主题推荐
  • MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
  • 广东宣布即时优化调整seo诊断分析
  • 做网站的经验和体会论坛网站搭建
  • MySQL笔记---索引
  • 免费做自荐书的网站网站设计怎么算间距
  • 在线制作表白网站的源码雄安新区网站建设
  • 让“通感”更聪明:人工智能在通信感知一体化中的非线性建模优势
  • 2024年ASOC SCI2区TOP,费马-韦伯定位粒子群算法+无人机协同路径规划,深度解析+性能实测
  • 政务网站平台建设 招标河北省建设网站的网站首页
  • 怎样建设美食网站wordpress外网排版问题
  • 自助建站网站程序源码手机网站建设注册塔山双喜
  • 内卷式迷茫-当游戏沉迷与疯狂刷题成为“空心病”的双重面具-AI
  • dedecms 网站名称网站开发与建设方向
  • Oracle OCP认证考试题目详解082系列第56题