【数据结构】位图的位图与布隆过滤器BloomFilter

  

,

<李>




# ifndef  __BITMAP_H__   # define  __BITMAP_H__   # include  & lt; vector>   # include “构成”      class 位图   {   公众:   ,,,位图(size_t  size =, 0)   ,,,,,,,:_size (0)   ,,,{   ,,,,,,,_a.resize ((size>祝辞;5)+ 1);   ,,,}   ,,,,   ,,,//插入数据   ,,,void 设定(size_t  x)   ,,,{   ,,,,,,,size_t  index =, x 在祝辞,5;   ,,,,,,,size_t  num =, x  %, 32;   ,,,,,,,//如果当前位置不存在值,直接插入   ,,,,,,,if  (! (_a(指数),,,(1,& lt; & lt;, num)))//判断这个位上是不是0的等   ,,,,,,,{   ,,,,,,,,,,,+ + _size;   ,,,,,,,,,,,_a(指数),|=,(1,& lt; & lt;, num);//将当前位上的值置成1   ,,,,,,,}   ,,,}      ,,,void 重置(size_t  x)   ,,,{   ,,,,,,,size_t  index =, x 在祝辞,5;   ,,,,,,,size_t  num =, x  %, 32;   ,,,,,,,   ,,,,,,,//判断当前位上的值是不是等于1,等于1删除   ,,,,,,,if  (_a(指数),,,(1,& lt; & lt;, num))   ,,,,,,,{   ,,,,,,,,,,,,_size;   ,,,,,,,,,,,_a(指数),,=,~ (1,& lt; & lt;, num);//将当前位置成0   ,,,,,,,}   ,,,}      ,,,bool 测试(size_t  x)   ,,,{   ,,,,,,,size_t  index =, x 在祝辞,5;   ,,,,,,,size_t  num =, x  %, 32;   ,,,,,,,   ,,,,,,,//如果当前位等于1,那么存在   ,,,,,,,if  (_a(指数),,,(1,& lt; & lt;, num))   ,,,,,,,{   ,,,,,,,,,,,return 真实;   ,,,,,,,}      ,,,,,,,return 假;   ,,,}      ,,,void 调整(size_t 大小)   ,,,{   ,,,,,,,_a.resize ((, size 的在祝辞,5),+,1);   ,,,}      ,,,size_t 尺寸()   ,,,{   ,,,,,,,return  _size;   ,,,}      私人:   ,,,vector, _a;   ,,,size_t  _size;//位图上插入了多少值   };         void 测试()   {   ,,,BitMap  bm (35);   ,,,bm.Set (4);   ,,,bm.Set (5);   ,,,bm.Set (6);   ,,,cout  & lt; & lt;,“is4Exist ?→”, & lt; & lt;, bm.Test (4), & lt; & lt;, endl;   ,,,cout  & lt; & lt;“is5Exist ?→”& lt; & lt;, bm.Test (5), & lt; & lt;, endl;      ,,,bm.Reset (5);   ,,,cout  & lt; & lt;,“is4Exist ?→”, & lt; & lt;, bm.Test (4), & lt; & lt;, endl;   ,,,cout  & lt; & lt;,“is5Exist ?→”, & lt; & lt;, bm.Test (5), & lt; & lt;, endl;   }      # endif //__BITMAP_H__


布隆过滤器布隆过滤器

原理

<代码> <代码> <代码> <代码>

<李>

,

<李>



:



# ifndef  __COMMON_H__   # define  __COMMON_H__      size_t  GetPrimeSize (size_t 大小)   {   ,,,static  const  int  _PrimeSize =, 28日;   ,,,static  const  unsigned  long  _PrimeList [_PrimeSize],=,,,{   ,,,,,,,53 ul,, 97 ul, 193 ul, 389 ul, 769 ul,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

【数据结构】位图的位图与布隆过滤器BloomFilter