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

C++容器之位集(std::bitset)

目录

  • 1 概述
  • 2 使用实例
  • 3 接口使用
    • 3.1 constructor
    • 3.2 count_and_size
    • 3.3 test
    • 3.4 any
    • 3.5 none
    • 3.6 all
    • 3.7 set
    • 3.8 reset
    • 3.9 filp
    • 3.10 to_string
    • 3.11 to_ulong
    • 3.12 to_ullong
    • 3.13 operators

1 概述

  位集存储位(只有两个可能值的元素:0或1,true或false,…)。
  该类模拟bool元素的数组,但针对空间分配进行了优化:通常,每个元素只占用一个位(在大多数系统上,这比最小的元素类型char少八倍)。
  每个比特位置都可以单独访问:例如,对于一个名为foo的给定比特集,表达式foo[3]访问其第四个比特,就像正则数组访问其元素一样。但是,因为在大多数C++环境中,没有元素类型是单个位,所以各个元素都是作为特殊引用类型访问的(请参见bitset::reference)。
  位集具有能够从整数值和二进制字符串构造并转换为它们的特性(请参见其构造函数和成员to_ulong和to_string)。它们也可以直接从二进制格式的流中插入和提取(请参阅适用的运算符)。
  位集的大小在编译时是固定的(由其模板参数决定)。对于一个同时优化空间分配并允许动态调整大小的类,请参阅向量的布尔特化(vector<bool>)。

其类图如下:
在这里插入图片描述

2 使用实例

void BitsetSuite::operators()
{std::bitset<4> a (std::string("1001"));std::bitset<4> b (std::string("0011"));TEST_ASSERT_EQUALS("1010", (a ^= b).to_string())//XOR,assignTEST_ASSERT_EQUALS("0010", (a &= b).to_string())//AND,assignTEST_ASSERT_EQUALS("0011", (a |= b).to_string())//OR,assignTEST_ASSERT_EQUALS("1100", (a <<= 2 ).to_string())//Shitf left,assignTEST_ASSERT_EQUALS("0110", (a >>= 1 ).to_string())//Shitf right,assignTEST_ASSERT_EQUALS("1100", (~b).to_string())//NOTTEST_ASSERT_EQUALS("0110", (b << 1 ).to_string())//Shitf leftTEST_ASSERT_EQUALS("0001", (b >> 1 ).to_string())//Shitf leftTEST_ASSERT_EQUALS(false, (a == b))//(0110==0011)TEST_ASSERT_EQUALS(true, (b != a)) //(0011!=0110)TEST_ASSERT_EQUALS("0101", (a ^ b).to_string())//XORTEST_ASSERT_EQUALS("0010", (a & b).to_string())//ANDTEST_ASSERT_EQUALS("0111", (a | b).to_string

相关文章:

C++容器之位集(std::bitset)

目录 1 概述2 使用实例3 接口使用3.1 constructor3.2 count_and_size3.3 test3.4 any3.5 none3.6 all3.7 set3.8 reset3.9 filp3.10 to_string3.11 to_ulong3.12 to_ullong3.13 operators1 概述 位集存储位(只有两个可能值的元素:0或1,true或false,…)。   该类模拟bool…...

《Ai学习笔记》自然语言处理 (Natural Language Processing):常见机器阅读理解模型(上)02

Glove 词向量&#xff1a; 在机器理解中的词的表示&#xff1a; 词袋&#xff08;bow,bag of words&#xff09; one-hot 词向量 word2vec glove 目的&#xff1a;将一个词转换成一个向量 Word2vec 是一种用于生成词向量的工具包&#xff0c;由Google在2013年开源推出…...

老师如何在线发布期末考试成绩查询?

在这个数字化时代&#xff0c;教育领域也迎来了翻天覆地的变化。传统的纸质成绩查询方式已经逐渐被在线成绩查询所替代。如何高效、便捷地进行在线期末考试成绩查询&#xff1f; 成绩的录入与上传。教师需要将学生的考试成绩准确无误地录入系统。这一步骤需要细心和耐心&#x…...

TensorBoard相关学习

TensorBoard是Google为TensorFlow框架开发的一个强大的可视化工具&#xff0c;它可以帮助用户更直观地理解、分析和调试机器学习模型的训练过程。通过TensorBoard&#xff0c;你可以可视化模型的结构、监控训练过程中的指标变化&#xff08;如损失函数、准确率&#xff09;、查…...

敏感数据处理的艺术:安全高效的数据提取实践与挑战

在数字化时代&#xff0c;数据已成为驱动经济社会发展的核心要素之一。然而&#xff0c;伴随数据量的爆炸性增长&#xff0c;敏感数据的管理和保护成为了信息安全领域的重大挑战。敏感数据&#xff0c;包括个人身份信息、财务记录、健康档案、商业秘密等&#xff0c;一旦泄露&a…...

使用Python操作excel单元格——获取带公式单元格的值

一、前言 通过使用Python的openpyxl库&#xff0c;来操作excel单元格&#xff0c;获取带公式的单元格中的值。 把学习的过程分享给大家。大佬勿喷&#xff01; 二、程序展示 1、表格准备 使用前面创建过的表格&#xff0c;获取B6单元格的求和值。 2、获取表格的值 wb o…...

PHP开发入门

PHP官网&#xff1a;PHP: Hypertext Preprocessor apache官网&#xff1a;https://httpd.apache.org/ 一、搭建PHP环境 下载apache 进入官网点击download 选择下载windows版本文件 点击进入下载界面 点击下载64位版本文件 下载后解压文件 解压文件后进入 D:\httpd-2.4.59-24…...

HBase分布式数据库入门到精通

文章目录 HBase分布式数据库入门到精通 一、简单介绍 二、HBase数据模型 三、HBase的架构 四、HBase写操作流程 五、HBase读操作流程 六、HBase minor小合并和major大合并 七、HBase目标表meta表 八、HBase特点 九、HBase的使用场景 HBase分布式数据库入门到精通 一、…...

Java程序员必备技能之MySQL数据库 图解整理/快速入门

恭喜大家来到全新的篇章——MySQL数据库,这一篇我们将学会MySQL数据库的原理、使用sql对数据库的增删改查操作、以及对MySQL数据库的权限管理和用户管理等内容。请大家耐心看下去,相信大家在看完这篇文章后,一定可以学会MySQL数据库(不会Java也可以学会!)。 ps:想要补充…...

效果炸裂!使用 GPT-4o 快速实现LLM OS

使用 GPT-4o 快速实现LLM OS 什么是 LLM OS&#xff1f;LLM OS 主要有以下5个部分组成&#xff1a; LLM OS 开源实现运行 LLM OS 开源实现 什么是 LLM OS&#xff1f; 关于 LLM OS 的最初构想源自karpathy 在2023年11月11日发布的一条Twitter 动态&#xff0c;这是 LLM OS 概念…...

杀死那个进程

一、场景 eclipse在启动tomcat时&#xff0c;出现端口被占用的情况。我寻思着“任务管理器”没出现相应程序在跑啊。 1.1问题&#xff1a;端口和进程的关系 端口和进程之间存在着一种关系&#xff0c;端口是一个逻辑概念&#xff0c;它用于标识网络通信中的一个终点&#xff0…...

【vue与iframe通讯】

vue 与 iframe 通讯 发送数据vue 向 iframe 发送数据iframe 向 vue 发送数据接收信息( vue & iframe 通用) 实现相互通讯通讯流程图实现代码vue 页面iframe页面iframe 内部重定向访问地址,更新 vue 路由 访问跨域代码下载 前言&#xff1a;vue嵌套iframe实现步骤 发送数据…...

【Python-openslide】openslide.open_slide()

作用&#xff1a; 打开图片 wsi openslide.open_slide(path)注&#xff1a; path&#xff1a; 图片所在路径&#xff0c;需要具体到图片名称(包含扩展名) 我的实验中采用的是svs格式的图像...

推荐系统学习笔记(三)

swing召回通道 Q&#xff1a;假如重合的用户是一个小圈子&#xff1a;在一个群里&#xff0c;毫无关联的笔记也会被同时交互 solve&#xff1a;降低小圈子权重--------------swing的主要目的------------给用户加权 相似度&#xff1a; a是人工参数&#xff0c;overlap降低小…...

521源码-免费游戏源码下载-闯梦江湖Q萌复古全网通手游服务端H5全攻略

闯梦江湖H5&#xff1a;Q萌复古全网通手游服务端全攻略 一、概述 闯梦江湖H5 是一款结合Q萌画风与复古情怀的全网通H5手游。我们为您提供了最新打包的Windows服务端&#xff0c;并附带了通用视频架设教程和GM网页授权后台工具&#xff0c;让您轻松搭建并管理自己的游戏世界。 …...

【Zotero】【MacOS】Zotero6常用插件总结

因为目前MacOS只支持Zotero6&#xff0c;所以我将网上找到的教程以及自己找到适应Zotero6版本的插件做了个整合 教程地址&#xff1a;Zotero6安装/插件安装教程 插件地址&#xff1a;Zotero6_Plugs...

具有固定宽度的盒子:\makebox, \parbox

makebox \makebox 是 LaTeX 中的一个命令&#xff0c;用于创建一个具有固定宽度的盒子&#xff0c;并在该盒子内放置内容。这个命令可以用于控制文本或对象的位置和对齐。 语法如下&#xff1a; \makebox[<width>][<alignment>]{<content>}其中&#xff1…...

中央网信办等四部门发布《互联网政务应用安全管理规定》

互联网政务应用安全管理规定 &#xff08;2024年2月19日中央网络安全和信息化委员会办公室、中央机构编制委员会办公室、工业和信息化部、公安部制定 2024年5月15日发布&#xff09; 第一章 总则 第一条 为保障互联网政务应用安全&#xff0c;根据《中华人民共和国网络安全法…...

国产性能怪兽——香橙派AI Pro(8T)上手体验报告以及性能评测

目录 1、引言2、性能参数3、开箱体验4、实际使用5、性能比较总结参考文章 1、引言 第一次接触香橙派的开发板&#xff0c;之前使用过Arduino、树莓派3B、树莓派4B&#xff0c;STM32&#xff0c;51单片机&#xff0c;没有想到国产品牌性能一样强劲&#xff0c;使用起来也是很方便…...

适用于 Windows 7/8/10/11 的 6 款最佳免费分区软件

分区软件程序旨在帮助您创建、缩小、删除、扩展、合并或拆分硬盘和其他存储设备的分区。虽然可以在 Windows 中对硬盘进行分区而无需使用其他软件&#xff0c;但您可以执行的活动范围有限。例如&#xff0c;如果没有外部工具&#xff0c;您无法调整分区大小或合并分区。在这篇文…...

ATmega328P烧录Bootloader报错?别急着换芯片,可能是签名搞的鬼(附avrdude.conf修改教程)

ATmega328P烧录Bootloader报错&#xff1f;别急着换芯片&#xff0c;可能是签名搞的鬼&#xff08;附avrdude.conf修改教程&#xff09; 当你兴致勃勃地准备给新买的ATmega328P芯片烧录Bootloader时&#xff0c;突然弹出一串红色报错信息&#xff0c;那种心情就像煮熟的鸭子飞走…...

基于8ms平台的嵌入式GUI开发实践:智能家居86盒UI设计与实现

1. 项目概述&#xff1a;当智能家居遇上8ms&#xff0c;一个86盒的UI革命 最近在折腾一个智能家居的改造项目&#xff0c;核心是想把家里那些老旧的开关面板&#xff0c;换成能联网、能自定义、还能显示点信息的“智能大脑”。市面上现成的智能开关要么功能固化&#xff0c;要么…...

人大金仓KingbaseES适配踩坑大全:MyBatis-Plus项目里那些MySQL语法不兼容的“坑”怎么填?

人大金仓KingbaseES适配实战&#xff1a;MyBatis-Plus项目MySQL语法迁移避坑指南 当企业级应用需要从MySQL迁移到国产数据库人大金仓KingbaseES时&#xff0c;开发者往往会遇到各种SQL语法不兼容的问题。作为基于PostgreSQL内核的数据库&#xff0c;KingbaseES在语法细节、函数…...

哔咔漫画下载器:如何轻松构建个人离线漫画图书馆?

哔咔漫画下载器&#xff1a;如何轻松构建个人离线漫画图书馆&#xff1f; 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器&#xff0c;带图形界面 带收藏夹&#xff0c;已打包exe 下载速度飞快 项目地址: https://gitcode.…...

5步掌握BG3SE:让《博德之门3》成为你的创意画布

5步掌握BG3SE&#xff1a;让《博德之门3》成为你的创意画布 【免费下载链接】bg3se Baldurs Gate 3 Script Extender 项目地址: https://gitcode.com/gh_mirrors/bg/bg3se BG3SE&#xff08;博德之门3脚本扩展器&#xff09; 是一款革命性的开源工具&#xff0c;它通过L…...

OBS智能镜头:5分钟实现直播自动对焦,让镜头始终跟随你

OBS智能镜头&#xff1a;5分钟实现直播自动对焦&#xff0c;让镜头始终跟随你 【免费下载链接】obs-face-tracker Face tracking plugin for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-face-tracker 你是否在直播时经常需要手动调整摄像头角度&#…...

LabVIEW多核并行编程实战:从数据流原理到生产者-消费者架构优化

1. 项目概述&#xff1a;从单核到多核的性能跃迁如果你用LabVIEW做过一些稍微复杂的应用&#xff0c;比如高速数据采集、实时图像处理或者复杂的控制算法仿真&#xff0c;大概率会遇到一个瓶颈&#xff1a;程序跑起来感觉“卡”&#xff0c;CPU占用率明明不高&#xff0c;但循环…...

大模型面试100问:从Transformer到RAG,互联网大厂AI岗位必备!

本文主要针对想要或者正在从事大语言模型、知识库、搜索增强生成&#xff08;RAG&#xff09;的研发、产品和测试同学&#xff0c;在面试中会遇到什么样的问题&#xff1f; 以下主要来自于各位从事大模型研发、产品和测试的伙伴、朋友在面试互联网大厂、AI科技公司的相关AI岗位…...

企业级应用如何借助Taotoken实现大模型API的容灾与负载均衡

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业级应用如何借助Taotoken实现大模型API的容灾与负载均衡 在构建依赖大模型能力的企业级应用时&#xff0c;服务的连续性与稳定性…...

Layerdivider深度解析:5步实现智能图像分层,生成专业级PSD文件

Layerdivider深度解析&#xff1a;5步实现智能图像分层&#xff0c;生成专业级PSD文件 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider Layerdivider是一款…...