BitMap
来源:互联网 发布:知乎是什么类型的网站 编辑:程序博客网 时间:2024/06/16 12:47
#include<iostream>#include<vector>using namespace std;//// 这里实现的是位图BitMap,使用BitSet为了跟STL中的bit_set一致。//class BitSet{public:BitSet(){}BitSet(size_t size){// 计算需要多个int来存储这些数据。// 右移5 == /32//_datas.reserve((size>>5) + 1);//_datas.assign((size>>5) + 1, 0);_datas.resize((size>>5)+1);}void Resize(size_t size){_datas.resize((size>>5)+1);}size_t _Converse(size_t size){return size>>5;}bool Test(size_t size){size_t index = _Converse(size);size_t pos = size%32;return _datas[index]&(1<<pos);}void Set(size_t size){size_t index = _Converse(size);size_t pos = size%32;_datas[index] |= (1<<pos);}void Reset(size_t size){size_t index = _Converse(size);size_t pos = size%32;_datas[index] &= ~(1<<pos);}void Clear(){_datas.clear();}private:vector<size_t> _datas;};void Test(){BitSet s(-1);s.Set(100);s.Set(200);s.Set(300);cout<<"100 In BitMap:"<<s.Test(100)<<endl;cout<<"200 In BitMap:"<<s.Test(200)<<endl;cout<<"300 In BitMap:"<<s.Test(300)<<endl;cout<<"101 Not In BitMap:"<<s.Test(101)<<endl;s.Reset(100);cout<<"100 Not In BitMap:"<<s.Test(100)<<endl;}
0 0
- Bitmap
- bitmap
- Bitmap
- bitmap
- bitmap
- BitMap
- BITMAP
- Bitmap
- Bitmap
- Bitmap
- Bitmap
- bitmap
- Bitmap
- Bitmap
- bitmap
- bitmap
- Bitmap
- Bitmap
- Android01_Android入门
- hrbust 1241 Blocks【暴力枚举+简单优化】
- Linux时钟精度:毫秒?微妙?纳秒?
- LRU算法实践分析
- Invalid property 'maxActive' of bean class [redis.clients.jedis.JedisPoolConfig]: Bean property
- BitMap
- ListView的进阶-跳转 下拉 上拉 多布局重用
- 菜鸟排序之选择与冒泡
- markdown编辑器
- 初学者笔记:Scanf间隔符号的使用
- 【JZOJ 3052】 剪草
- 海淘 亚马逊 冻结账号 怎么办?
- [MacOSX]_[LaunchDaemons]_[Mac OS X 安装Tomcat开机启动服务的方法之一]
- ABAP字符串操作