用位图解决大数据存储
来源:互联网 发布:禁毒网络知识竞赛答案 编辑:程序博客网 时间:2024/05/01 15:24
BitSet.h
#include<iostream>#include<assert.h>using namespace std;class BitSet{public: BitSet(size_t N) //N表示存储数据的范围 { _size = N / 32 + 1; _arr = new size_t[_size]; memset(_arr, 0, sizeof(size_t)*_size);//给_arr数组初始化全部为0 } ~BitSet() { if (_arr) { delete[] _arr; } } void Set(size_t num) { int index = num / 32;//index表示数据存储在数组的第几个位置 assert(index < _size); int pos = num % 32; //pos表示数组下标为index的某一位 _arr[index] |= 1 << (32 - pos); } void Reset(size_t num) { int index = num / 32; assert(index < _size); int pos = num % 32; _arr[index] &= ~(1 << (32 - pos)); } void Clear() { memset(_arr, 0, sizeof(size_t)*_size); } bool Test(size_t num)//测试num是否已经存在 { int index = num / 32; assert(index < _size); int pos = num % 32; if ((_arr[index] & 1 << (32-pos)) > 0) { return true; } return false; }private: size_t* _arr; size_t _size;};
main.cpp
#include"BitSet.h"void Test(){ BitSet bt(-1); //将-1强转成4294967295 bt.Set(32); bt.Set(99); bt.Reset(32); bt.Test(32); //bt.Clear(); bt.Test(99); bt.Test(1);}int main(){ Test(); getchar(); return 0;}
1 0
- 用位图解决大数据存储
- 【位图】位图实现,处理大数据
- 【位图】位图实现,处理大数据
- 利用位图查找大数据
- SQLSERVER 文件组解决大数据量数据存储
- SQLSERVER 文件组解决大数据量数据存储
- 【位图】--利用位图储存大数据,节省空间,快速查找
- 大数据常用技巧之位图法
- 大数据之位图法简单实现
- 存储大数据图片
- SQLite大数据存储
- 大数据存储
- 五大存储数据
- jdbc-大数据存储
- 大数据存储技术
- 大数据存储
- 数据存储大总结
- 大数据存储
- Android EditText一键删除功能实现
- C# ASP.NET開發筆記(一)
- LibGDX_4.9: 动画(Animation)
- 介绍TCP/udp比较好的博客
- HDU 3836 Equivalent Sets 强连通分量
- 用位图解决大数据存储
- Maven实战读书笔记之三(Maven使用入门)
- Cocos-Js - Cocostudio在JS中的使用
- WebService “测试窗体只能用于来自本地计算机的请求”解决方法
- Linux_shell_ 进阶
- Spring概述<00>
- (5)在DLL中使用DuiLib
- 设置Eclipse中的tab键为4个空格的完整方法
- 仿微信聊天功能实现