返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言中位图怎么实现
  • 877
分享到

C语言中位图怎么实现

2023-06-15 07:06:05 877人浏览 泡泡鱼
摘要

这篇文章主要介绍C语言中位图怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例为大家分享了C语言位图及位图的实现具体代码,供大家参考,具体内容如下1.概念位图(bitset)是一种常用的数据结构,常用在给

这篇文章主要介绍C语言中位图怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

本文实例为大家分享了C语言位图及位图的实现具体代码,供大家参考,具体内容如下

1.概念

位图(bitset)是一种常用的数据结构,常用在给一个很大范围的数,判断其中的一个数是不是在其中。在索引、数据压缩方面有很大的应用。

位图是用数组实现的,数组的每一个元素的每一个二进制位都表示一个数据,0表示该数据不存在,1表示该数据存在。

2.c++库中bitset的使用

3.bitset的简单实现

C语言中位图怎么实现

当我们存放一个数据时的思路是:

1)确定数据在哪个区间上,即_bitSet的第几个元素上,_bitSet是顺序表,每个元素是char类型,value/8可得到

2)确定数据在哪个区间的哪个bit位上,value%8可以得到

3)找到该位置后,将bit位置1

4)重置的时候,将该bit位置0

#pragma once#include<vector> //只能用于整型,节省空间 class BitSet{public: BitSet(size_t range) {  //当range为8以下的时候,会开辟0个空间,会出错  _bitSet.resize(range/8+1,0); }  void Set(size_t value) {  size_t index = value / 8;  //value>>3  size_t pos = value % 8;   _bitSet[index] |= (1<<pos); //置1:或1 }  void ReSet(size_t value) //重置 {  size_t index = value / 8;  size_t pos = value % 8;   _bitSet[index] &= ~(1<<pos); //置0: 与0 }  bool Test(size_t value) //检测 {  size_t index = value / 8;  size_t pos = value % 8;    return _bitSet[index] & (1<<pos);  } protected: vector<char> _bitSet;}; void TestBitMap(){ BitSet b(-1); //-1转为无符号数就是最大值 b.Set(5); b.Set(999); b.Set(1022); b.Set(111110000);  cout<<b.Test(5)<<endl; cout<<b.Test(100)<<endl; //100不在位图当中 cout<<b.Test(999)<<endl; cout<<b.Test(1022)<<endl; cout<<b.Test(111110000)<<endl;}

C语言中位图怎么实现

以上是“C语言中位图怎么实现”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网其他教程频道!

--结束END--

本文标题: C语言中位图怎么实现

本文链接: https://lsjlt.com/news/278635.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言中位图怎么实现
    这篇文章主要介绍C语言中位图怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例为大家分享了C语言位图及位图的实现具体代码,供大家参考,具体内容如下1.概念位图(bitset)是一种常用的数据结构,常用在给...
    99+
    2023-06-15
  • C语言位图及位图的实现
    本文实例为大家分享了C语言位图及位图的实现具体代码,供大家参考,具体内容如下 1.概念 位图(bitset)是一种常用的数据结构,常用在给一个很大范围的数,判断其中的一个数是不是在其...
    99+
    2024-04-02
  • C++位图怎么实现
    这篇文章给大家分享的是有关C++位图怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概念位图就是bitmap的缩写,所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,该数据都是不重复的简单数据...
    99+
    2023-06-15
  • C语言实现24位彩色图像二值化
    本文实例为大家分享了C语言实现24位彩色图像二值化的具体代码,供大家参考,具体内容如下 // huiduhua.cpp : 定义控制台应用程序的入口点。 // #includ...
    99+
    2024-04-02
  • C#中怎么实现多语言
    这篇文章给大家介绍C#中怎么实现多语言,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#实现多语言的方法是通过配置文件实现,通过从配置文件中读取资源,然后在显示窗口的时候,即Load()方法中,动态显示相应的选择语言。...
    99+
    2023-06-17
  • c语言中千位怎么表示
    c语言中,千位符用于表示千位分隔符,可通过以下方法实现:手动添加逗号(,),每隔三位添加一个。使用c语言库函数:设置语言环境(setlocale())。获取千位分隔符字符(localec...
    99+
    2024-05-02
    c语言
  • c语言怎么实现图形化输入
    在C语言中,可以使用图形用户界面(GUI)库来实现图形化输入。以下是一些常用的C语言GUI库: GTK+:GTK+ 是一个跨平台...
    99+
    2024-02-29
    c语言
  • c语言位域怎么用
    c 语言位域 位域是一种数据类型,允许将数据存储在单个字节或单词的特定位集合中。它使用一个结构来定义位域,其中每个位域成员都有一个特定的偏移量和大小。 使用位域的步骤: 定义结构: ...
    99+
    2024-05-21
    c语言
  • Python语言怎么在C语言中实现操作
    这篇文章给大家介绍Python语言怎么在C语言中实现操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python语言会在很多的语言中出现。我们在不断的学习和使用中存在着不少问题,下面我们就详细的来学习相关的知识以及如...
    99+
    2023-06-17
  • C语言中怎么实现协程
    本篇内容主要讲解“C语言中怎么实现协程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言中怎么实现协程”吧!协程vs线程对比使用多线程来解决IO阻塞任务,使用...
    99+
    2024-04-02
  • C语言中怎么实现链栈
    这篇文章将为大家详细讲解有关C语言中怎么实现链栈,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。链栈图解链栈的常规操作LinkStack  InitLinkStack();// ...
    99+
    2023-06-15
  • 怎么用C语言在Linux下实现CC2530上位机
    小编给大家分享一下怎么用C语言在Linux下实现CC2530上位机,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、环境简介1. 软硬件环境下位机:CC2530 ...
    99+
    2023-06-15
  • C语言算法积累分离数位怎么实现
    今天小编给大家分享一下C语言算法积累分离数位怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。题目:输出一个三位整数的个...
    99+
    2023-07-01
  • c语言图像识别算法怎么实现
    要实现图像识别算法,可以使用以下步骤: 数据预处理:首先,将图像转换为数字矩阵表示。可以使用图像处理库(例如OpenCV)读取图...
    99+
    2023-10-24
    c语言
  • C语言怎么实现图书管理系统
    要实现一个图书管理系统,可以按照以下步骤进行:1. 定义图书结构体:首先要定义一个图书的结构体,包括图书的编号、名称、作者等信息。`...
    99+
    2023-08-09
    C语言
  • c语言分离三位数的实现
    目录c语言分离三位数c语言数字分离题目初级代码第二种方法,可以用数组c语言分离三位数 #include<stdio.h> main(){ int k,l,m,n; ...
    99+
    2024-04-02
  • C语言如何实现位段机制
    这篇文章主要为大家展示了“C语言如何实现位段机制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言如何实现位段机制”这篇文章吧。概念什么是位段?位段又称为位域,C语言允许在一个结构体中以位为单...
    99+
    2023-06-29
  • c语言怎么实现类
    c 语言中实现类的途径有四种:结构体和函数指针:使用结构体封装数据和函数指针访问方法。宏和预处理器:宏定义类方法名,预处理器生成实现代码。编译器扩展:某些编译器支持面向对象编程扩展,允许...
    99+
    2024-04-13
    c语言 typedef
  • C语言中怎么实现TCP通信
    C语言中怎么实现TCP通信,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。TCP协议TCP协议:是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定...
    99+
    2023-06-03
  • C++中位图的实现示例
    这篇文章主要介绍C++中位图的实现示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概念位图就是bitmap的缩写,所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,该数据都是不重复的简单数据。通常是用...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作