当前位置: 首页 > 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;您无法调整分区大小或合并分区。在这篇文…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...