当前位置: 首页 > news >正文

东莞大朗疫情最新消息windows优化大师手机版

东莞大朗疫情最新消息,windows优化大师手机版,国家高新技术企业名单,营销型网站建设怎么做初识位图bitmap 位图(Bitmap)是一种用于表示和操作位(bit)的数据结构。它是由一系列二进制位(0 或 1)组成的序列,每个位都可以单独访问和操作。 位图常用于以下情况: 压缩存储&…

初识位图bitmap

位图(Bitmap)是一种用于表示和操作位(bit)的数据结构。它是由一系列二进制位(0 或 1)组成的序列,每个位都可以单独访问和操作。

位图常用于以下情况:

  • 压缩存储:位图可以有效地存储大量的布尔值信息,每个位只占用一个比特,因此可以大幅减少存储空间的占用。例如,当需要存储大量的开关状态、标志位或者布尔型数据时,使用位图可以节省内存。

  • 快速查找和查询:由于位图的特殊存储结构,它可以快速进行位的查找和查询。例如,可以用位图表示一组元素的存在与否,然后通过位运算来快速进行成员的查找、去重、交集、并集等操作。

  • 数据压缩和索引:位图可以用于压缩和索引数据,特别是在数据集合较小且有规律的情况下。例如,在数据库中,可以使用位图索引来加速数据的查询操作。

  • 布隆过滤器:布隆过滤器是一种基于位图的概率型数据结构,用于快速判断一个元素是否存在于一个集合中。它通过多个哈希函数和位图来判断元素的存在性,具有较低的空间占用和高效的查询速度。

在实现位图时,常用的数据结构有数组、位集合(bit set)或者使用整型数据类型(如整型数组、位域等)来表示。在现代编程语言中,也常常提供了专门的位图类或库,如 C++ 中的 std::bitset。

总结起来,位图是一种用于表示和操作位的数据结构,它可以节省存储空间、实现快速的位操作,并在许多领域中有着广泛的应用,包括存储、索引、查询、数据压缩等。

实现位图bitmap

#include <iostream>
#include <vector>
using namespace std;
class Bitmap {
private:std::vector<uint8_t> data; // 位图数据存储uint64_t size; // 位图大小(位数)public:Bitmap(uint64_t bitmapSize) {size = bitmapSize;data.resize((size + 7) / 8, 0); // 位图数据初始化为0}void set(uint64_t index) {if (index >= size) {std::cout << "Index out of range." << std::endl;return;}uint64_t byteIndex = index / 8;uint8_t bitOffset = index % 8;data[byteIndex] |= (1 << bitOffset);}bool test(uint64_t index) {if (index >= size) {std::cout << "Index out of range." << std::endl;return false;}uint64_t byteIndex = index / 8;uint8_t bitOffset = index % 8;return (data[byteIndex] & (1 << bitOffset)) != 0;}
};
int main(){const uint64_t bitmapSize = 28; // 位图大小Bitmap bitmap(bitmapSize); // 创建位图// 设置一些位bitmap.set(0);bitmap.set(5);bitmap.set(10);bitmap.set(15);bitmap.set(18);// 测试位状态for (uint64_t i = 0; i < bitmapSize; i++) {std::cout << "Bit " << i << ": " << bitmap.test(i) << std::endl;}return 0;}

c++提供的bitset

#include <iostream>
#include <bitset>int main() {// 创建一个位图,表示 8 个标志位std::bitset<8> bitmap;// 设置第 2 位和第 5 位为 1bitmap.set(2);bitmap.set(5);// 输出位图的值std::cout << "Bitmap: " << bitmap << std::endl;// 获取第 3 位的值bool bit3 = bitmap.test(3);std::cout << "Bit 3: " << bit3 << std::endl;// 清除第 5 位bitmap.reset(5);// 输出位图的值std::cout << "Bitmap: " << bitmap << std::endl;// 获取位图的大小(位数)size_t size = bitmap.size();std::cout << "Bitmap size: " << size << std::endl;return 0;
}

github链接:https://github.com/mulinhu/CPPer/tree/main/util/bitmap_demo

http://www.hrbkazy.com/news/19136.html

相关文章:

  • 梧州论坛蒙山奇零seo赚钱培训
  • 做网站至少多少钱精准客源app
  • wordpress支持latex湖南专业关键词优化服务水平
  • 哪个网站查企业信息免费槐荫区网络营销seo
  • 新闻头条免费下载安装seo关键词外包
  • 做网站需要写那些xmind聊城优化seo
  • 学ui的网站软件外包网站
  • wordpress500错误解决西安seo关键词推广
  • wordpress 搜索 分类北京云无限优化
  • wordpress简介企业做网站seo优化
  • 唐山做网站口碑好的世界新闻最新消息
  • 商城网站素材网络游戏推广员
  • 网站开发制作费入会计科目seo和sem哪个工资高
  • 网站图怎么做企业网站seo贵不贵
  • 做门户网站需要学什么软件产品优化是什么意思
  • 郑州网站建设公司百度指数平台
  • jiasale wordpress东莞seo优化公司
  • 传业做微采商城网站商丘网络推广公司
  • 移动端网站开发视频广告外链购买交易平台
  • 做兼职编辑的网站品牌软文
  • 松江信息科技有限公司网站百度一下百度官网
  • 如何扫描网站漏洞百度推广费用一年多少钱
  • 做的好看的pc端网站每日新闻摘抄10一30字
  • 黄山新洲建设集团网站优化方案官网电子版
  • html代码大全网站推荐百度快照的作用是什么
  • 欢迎页面模板短视频seo优化
  • 成都装修网站设计seo网站优化服务合同
  • 做网站什么类型好2023年8月新闻热点事件
  • 代理网址是什么河南纯手工seo
  • 设计师的个人网站株洲发布最新通告