位图(bitset)和布隆过滤器

news2024/11/26 10:25:14

位图将数字映射到比特位上,用0,1来表示数据存在与否。

适用场景:大量数据(2^32次方约为40亿数据,0.5GB),判断存在与否。

template<size_t N>
class Bitset
{
public:
	Bitset()
	{
		// 在x86下size_t表示四个字节,32个比特位
	
		_bt.resize(N/32+1);
	}
    // set方法设置x对应比特位为0
	void set(size_t x)
	{
		size_t i=x / 32;
		size_t j = x % 32;
		_bt[i] |= (1 << j);
	}
    // reset方法设置x对应比特位为1
	void reset(size_t x)
	{
		size_t i = x / 32;
		size_t j = x % 32;
		_bt[i] &= ~(1 << j);
	}
    // 判断是否存在
	bool test(size_t x)
	{
		size_t i = x / 32;
		size_t j = x % 32;
		return _bt[i] & (1 << j);
	}
private:
	vector<size_t> _bt;
};

位图可以通过按位与和或操作来实现比特位的控制

值得注意的是,数据在vs上可以为这样储存。但不影响移位。

两个位图:从存不存在,可以少量统计存在次数,两个比特位有四种形式。

template<size_t N>
class TwoBitset
{
public:
	TwoBitset()
	{}
	// 当数据存在设成01,出现两次设成10,
	void set(size_t x)
	{
		
		if (!bs1.test(x)&&!bs2.test(x))
		{
			bs1.set(x);
		}
		else if (bs1.test(x) && !bs2.test(x))
		{
			bs2.set(x);
		}
		else
		{
			;
		}
	}
	void reset(size_t x)
	{
		bs1.reset(x);
		bs2.reset(x);
	}
	bool test(size_t x)
	{
		return bs1.test(x) && bs2.test(x);
	}
private:
	Bitset<-1> bs1;
	Bitset<-1> bs2;
};

布隆过滤器:就是一个值映射多个值,一对多的关系。 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1257670.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工行软件开发中心DDD奇文赏析

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 本文的内容和《经济形势下谈建模和伪创新-长点心和长点良心》相关。 关于DDD&#xff08;领域驱动设计&#xff09;&#xff0c;乱七八糟的文章很多。 一些比较明显的宣传文章&#x…

死磕Nacos系列:Nacos是如何更新服务信息的?

前言 说到服务信息&#xff0c;我们还是得回到NamingService&#xff0c;因为这是和NacosServer进行服务注册的核心组件&#xff0c;内部提供了注册、获取Nacos实例的能力。至于其他组件&#xff0c;如Ribbon&#xff0c;在调用时需要所有实例信息来进行负载&#xff0c;那肯定…

性价比高的学生台灯什么牌子好?备考用眼必备护眼台灯推荐

近期&#xff0c;浙江温州市场监督管理局开展了流通领域学生用品质量监督抽查&#xff0c;本期抽检4批LED读写台灯&#xff0c;检出1批产品不合格&#xff0c;不合格检出率为25%。广东久量股份有限公司生产的1款LED时尚无级调光台灯&#xff0c;检出“标记、爬电距离和电气间隙…

Unity 打印每次代码保存耗时

unity每次编辑代码的时候&#xff0c;都需要保存&#xff0c;unity右下角的小圆圈总是转个不停&#xff0c;那么每次编辑代码后&#xff0c;unity到底需要多久时间呢&#xff0c;下面就有代码可以获取 保存时间。 using UnityEngine; using UnityEditor; using UnityEditor.Com…

高功率工业RFID读写器怎么用?

工业读写器相比于通用型读写器&#xff0c;IP防护等级更高&#xff0c;抗干扰性能也更强&#xff0c;能够适应工业应用中的各种恶劣环境。在具体应用中&#xff0c;工业读写器根据功率大小也可分为大功率、中功率&#xff0c;功率大小直接影响读距远近&#xff0c;因此在实际应…

轻松配置PPPoE连接:路由器设置和步骤详解

在家庭网络环境中&#xff0c;我们经常使用PPPoE&#xff08;点对点协议过夜&#xff09;连接来接入宽带互联网。然而&#xff0c;对于一些没有网络专业知识的人来说&#xff0c;配置PPPoE连接可能会有些困难。在本文中&#xff0c;我将详细介绍如何轻松配置PPPoE连接&#xff…

Java代码生成器,一键在线生成,支持自定义模板

【Java代码生成神器】自动化生成Java实体类、代码、增删改查功能&#xff01;点击访问 推荐一个自己每天都在用的Java代码生成器&#xff01;这个网站支持在线生成Java代码&#xff0c;包含完整的Controller\Service\Entity\Dao代码&#xff0c;完整的增删改查功能&#xff01…

Mysql使用周期性计划任务定时备份,发现备份的文件都是空的?为什么?如何解决?

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

请停止在简历上写: 精通Python, 会害了你

离了个大谱&#xff01; 瑞银暑期实习生都要求精通Python? 你以为能用Python演示“hello world" 就是精通Python了么&#xff1f; too yang too天真 一、不会Python的我们不要 1、瑞士银行 瑞士银行的暑期实习岗位JD中要求应聘者精通编程语言&#xff0c;特别是C或…

苹果cms搭建教程附带免费模板

准备工作: 一台服务器域名源码安装好NGINX+PHP7.0+MYSQL5.5 安装php7.0的扩展,fileinfo和 sg11,不安装网站会搭建失败。 两个扩展都全部安装好了之后 点击-服务-重载配置 这样我们的网站环境就配置完成啦 下载苹果cms 苹果cms程序github链接:选择mac10!下载即可 http…

数字技术,为企业全面预算管理贡献数智力量

近年来&#xff0c;我国数字技术的急速发展使得企业预算管理方式产生了诸多变化。先进的技术是全面预算管理系统被广泛应用的保障&#xff0c;企业管理也逐渐从传统的独立信息化系统朝着数智化、自动化主导的集群方向转变。以数据为核心、技术为支撑的全面预算管理系统&#xf…

什么是包装生产ERP?可以带给企业哪些优势

包装生产是比较常见的加工业务&#xff0c;不同的包装生产有不同的业务流程和管理模式&#xff0c;随着原材料成本、人工成本和水电等成本的上涨&#xff0c;企业也面临较大的经营压力。 如何整合各项资源&#xff0c;优化生产过程&#xff0c;降低运作成本&#xff0c;提升商…

MIT_线性代数笔记:第 07 讲 求解 Ax=0:主变量,特解

目录 前言计算零空间 Nullspace特解 Special solutions行最简阶梯矩阵 Reduced row echelon form &#xff08;rref&#xff09; 前言 我们定义了矩阵的列空间和零空间&#xff0c;那么如何求得这些子空间呢&#xff1f;本节课的内容即从定义转到算法。 计算零空间 Nullspace…

某生物科技巨头:引入安全工具,推动基因科技领域智能化发展

某生物科技巨头是生物科技领域的领导者&#xff0c;业务覆盖行业全产业链、全应用领域&#xff0c;是全球领先的科学技术服务提供商和精准医疗服务运营商。一直以来&#xff0c;该生物科技机构都致力于加速推动以基因科技为支撑的生命数字化建设&#xff0c;实现批量短基因快速…

redis Redis::geoAdd 无效,phpstudy 如何升级redis版本

redis 查看当前版本命令 INFO SERVERwindows 版redis 进入下载 geoadd 功能在3.2之后才有的&#xff0c;但是phpstudy提供的最新的版本也是在3.0&#xff0c;所以需要升级下 所以想出一个 挂狗头&#xff0c;卖羊肉的方法&#xff0c;下载windows 的程序&#xff0c;直接替…

第二证券:煤炭板块震荡走高 潞安环能、晋控煤业涨超5%

证券时报网讯&#xff0c;煤炭板块27日盘中发力走高&#xff0c;到发稿&#xff0c;潞安环能、晋控煤业涨超5%&#xff0c;平煤股份、山西焦煤涨逾3%&#xff0c;恒源煤电、开滦股份等上扬。 职业方面&#xff0c;近期寒潮来袭&#xff0c;气温下降带动居民用电需求增加&#…

海外Leads Generation产业:中国出海群体的行业大机会

Leads Generation&#xff08;简称LeadsGen&#xff09;指的是集中精力吸引和开发潜在客户的营销策略。通过引导式的营销策略&#xff0c;企业分发内容吸引潜在客户&#xff0c;引导客户留下电话/邮件/姓名等信息。基于这些信息&#xff0c;企业可建立潜在客户数据库&#xff0…

iOS移动应用程序的备案与SHA-1值查看

​ 目录 &#x1f4dd;iOS移动应用程序的备案与SHA-1值查看 引言 第一部分&#xff1a;App备案 第二部分&#xff1a;查看SHA-1值 引言 在开发和发布移动应用程序时&#xff0c;进行App备案是非常重要的一步&#xff0c;它是确保您的应用在合规性方面符合相关法规的过程。…

Redis分布式锁实现Redisson 15问

在一个分布式系统中&#xff0c;由于涉及到多个实例同时对同一个资源加锁的问题&#xff0c;像传统的synchronized、ReentrantLock等单进程情况加锁的api就不再适用&#xff0c;需要使用分布式锁来保证多服务实例之间加锁的安全性。常见的分布式锁的实现方式有zookeeper和redis…

C#工程中Form_xx.cs不能在设计器中查看

环境&#xff1a;VS2022 直接上图&#xff1a; 原因&#xff1a; 写了个类在Form_xx.cs中从For继承的部分类之前&#xff0c;移动到之后&#xff0c;保证窗体类是代码中的首个类即可&#xff0c;如图&#xff1a;