C++简单版BitSet求解大量数据是否存在莫个数
2024-10-01 00:23:01
#include <iostream>
using namespace std;
template<int N>
class BitSet
{
public:
BitSet()
{
set();
}
void set()
{
for (int i = 0; i < Nm; i++)
{
vtr[i] = 0;
}
}
void set(int n)
{
vtr[(n-1) / 32] |= (0x1 << ((n-1) % 32));
}
void Printf()
{
for (int i = N; i >0; i--)
{
cout<< (((vtr[(i-1)/32]>>((i-1)%32)) & 0x1) == 0 ? "0" : "1");
}
}
bool test(int n)
{
if (vtr[(n-1) / 32] >> ((n-1) % 32) & 0x1)return true;
return false;
}
private:
enum{ _N_=(N-1) / (sizeof(size_t)*8)};
enum{Nm=_N_+1};
int vtr[Nm];
};
int main()
{
BitSet<344> bt;
bt.set(32);
//如此一个简单的bitset就完毕了,找出大量数据中是否存在莫个数字。
if (bt.test(32))
{
cout << "该位置存在" << endl;
}
else
{
cout << "该位置不存在" << endl;
}
bt.Printf();
return 0;
}
最新文章
- quartz定时+log4net日志+exchangeservice发邮件
- python安装numpy、scipy和matplotlib等whl包的方法
- 2013成都网络赛 J A Bit Fun(水题)
- C和指针 第六章 指针6.2 6.3字符串中查找的两个版本
- C语言中的深拷贝和浅拷贝
- Can&#39;t locate Switch.pm in @INC
- 放飞App:移动产品经理实战指南
- DELL 720XD和R820玩赏
- hdu1301 Jungle Roads (Prim)
- U-Boot 启动过程和源码分析(第二阶段)-main_loop分析
- 使用DateSet下载Excel
- VHDL和verilog应该先学哪个?
- C++版 - HDUoj 2010 3阶的水仙花数 - 牛客网
- GCC编译器原理(一)------交叉编译器制作和GCC组件及命令
- [转]谈谈Java中";==";与";equals()";
- canvas动画---- 太阳、地球、月球
- C#用Infragistics 导入导出Excel(一)
- 如何修改Mac截屏保存路径
- linux-centos6/7初始配置
- Windows内置系统账户:Local system/Network service/Local Service 区别