bitmap

  bitmap是通过1个位表示一个状态,比如:int类型有2^32个数字,即4G个数字,那么每个数字一个状态,就是2^32个bit,即512 MB。

  即4G个数字(大约是4亿数字,如果是4G个整数,就是16GB大小)可以转化为512 MB大小

 1 #include <iostream>
 2 #include <memory.h>
 3 using namespace std;
 4 
 5 char bitmap[4] ;
 6 
 7 void add(int n)
 8 {
 9       bitmap[n/8] |= (128 >> n%8);
10 }
11 
12 bool search(int n)
13 {
14         if(bitmap[n/8] & (128>>n%8))
15              return true;
16         return false;
17 }
18 
19 int main()
20 {
21     int n[] = {2, 5, 7, 9, 25,};
22     int i;
23 
24     memset (bitmap, 0, sizeof(bitmap));
25     
26     for( i=0; i<5; i++)
27           add(n[i]);
28 
29     for( i=0; i<5; i++)
30           if(search(n[i]))   
31               cout << "find " << n[i] <<endl;
32         
33     return 0;
34 
35 
36 }

 

posted on 2016-05-10 11:10  RenewDo  阅读(177)  评论(0编辑  收藏  举报

导航