标准库bitset类型介绍

ZEMAX优化方法---【Zemax学习】 在光学系统自动设计中,优化设计是光学设计中的重要阶段,也是ZEMAX软件的核心功能,涉及评价函数、权因子、阻尼因子等重要概念。在常用的阻尼最小二乘法优化设计的基础上,ZEMAX给我们提供了三种优化选择:Optimization(局部优化)、Global Search(全局优化)和 Hammer Optimization(锤形优化)。 阅读详情

 

有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供了bitset类使得处理位集合更容易一些。要使用bitset类就必须要包含相关的头文件。在本书提供的例子中,假设都使用了std::bitset的using声明:

#include <bitset>

using std::bitset;

3.5.1  bitset的定义和初始化

表3-6列出了bitset的构造函数。类似于vector,bitset类是一种类模板;而与vector不一样的是bitset类型对象的区别仅在其长度而不在其类型。在定义bitset时,要明确bitset含有多少位,须在尖括号内给出它的长度值:

bitset<32> bitvec; //32位,全为0。

给出的长度值必须是常量表达式(2.7节)。正如这里给出的,长度值必须定义为整型字面值常量或是已用常量值初始化的整数类型的const对象。

这条语句把bitvec定义为含有32个位的bitset对象。和vector的元素一样,bitset中的位是没有命名的,程序员只能按位置来访问它们。位集合的位置编号从0开始,因此,bitvec的位序是从0到31。以0位开始的位串是低阶位(low-order bit),以31位结束的位串是高阶位(high-order bit)。

表3-6  初始化bitset对象的方法

bitset<n> b;

b有n位,每位都为0

bitset<n> b(u);

b是unsigned long型u的一个副本

bitset<n> b(s);

b是string对象s中含有的位串的副本

bitset<n> b(s, pos, n);

b是s中从位置pos开始的n个位的副本

1. 用unsigned值初始化bitset对象

当用unsigned long值作为bitset对象的初始值时,该值将转化为二进制的位模式。而bitset对象中的位集作为这种位模式的副本。如果bitset类型长度大于unsigned long值的二进制位数,则其余的高阶位置为0;如果bitet类型长度小于unsigned long值的二进制位数,则只使用unsigned值中的低阶位,超过bitet类型长度的高阶位将被丢弃。

在32位unsigned long的机器上,十六进制值0xffff表示为二进制位就是十六个1和十六个0(每个0xf可表示为1111)。可以用0xffff初始化bitset对象:

// bitvec1 is smaller than the initializer

bitset<16> bitvec1(0xffff);          // bits 0 ... 15 are set to 1

// bitvec2 same size as initializer

bitset<32> bitvec2(0xffff);          // bits 0 ... 15 are set to 1; 16 ... 31 are 0

// on a 32-bit machine, bits 0 to 31 initialized from 0xffff

bitset<128> bitvec3(0xffff);         // bits 32 through 127 initialized to zero

上面的三个例子中,0到15位都置为1。由于bitvec1位数少于unsigned long的位数,因此bitvec1的初始值的高阶位被丢弃。bitvec2和unsigned long长度相同,因此所有位正好放置了初始值。bitvec3长度大于32,31位以上的高阶位就被置为0。

2. 用string对象初始化bitset对象

当用string对象初始化bitset对象时,string对象直接表示为位模式。从string对象读入位集的顺序是从右向左:

string strval("1100");

bitset<32> bitvec4(strval);

bitvec4的位模式中第2和3的位置为1,其余位置都为0。如果string对象的字符个数小于bitset类型的长度,则高阶位将置为0。

string对象和bitset对象之间是反向转化的:string对象的最右边字符(即下标最大的那个字符)用来初始化bitset对象的低阶位(即下标为0的位)。当用string对象初始化bitset对象时,记住这一差别很重要。

不一定要把整个string对象都作为bitset对象的初始值。相反,可以只用某个子串作为初始值:

string str("1111111000000011001101");

bitset<32> bitvec5(str, 5, 4); // 4 bits starting at str[5], 1100

bitset<32> bitvec6(str, str.size() - 4);     // use last 4 characters

这里用str中从str[5]开始包含四个字符的子串来初始化bitvec5。照常,初始化bitset对象时总是从子串最右边结尾字符开始的,bitvec5的从0到3的二进制位置为1100,其他二进制位都置为0。如果省略第三个参数则意味着取从开始位置一直到string末尾的所有字符。本例中,取出str末尾的四位来对bitvec6的低四位进行初始化。bitvec6其余的位初始化为0。这些初始化过程的图示如下:

3.5.2  bitset对象上的操作

多种bitset操作(表3-7)用来测试或设置bitset对象中的单个或多个二进制位:

表3-7  bitset操作

b.any()

b中是否存在置为1的二进制位?

b.none()

b中不存在置为1的二进制位吗?

b.count()

b中置为1的二进制位的个数

b.size()

b中二进制位的个数

b[pos]

访问b中在pos处的二进制位

b.test(pos)

b中在pos处的二进制位是否为1?

b.set()

把b中所有二进制位都置为1

b.set(pos)

把b中在pos处的二进制位置为1

b.reset()

把b中所有二进制位都置为0

b.reset(pos)

把b中在pos处的二进制位置为0

b.flip()

把b中所有二进制位逐位取反

b.flip(pos)

把b中在pos处的二进制位取反

b.to_ulong()

用b中同样的二进制位返回一个unsigned long值

os << b

把b中的位集输出到os流

1. 测试整个bitset对象

如果bitset对象中有一个或多个二进制位置为1,则any操作返回true,也就是说,其返回值等于1;相反,如果bitset对象中的二进制位全为0,则none操作返回true。

bitset<32> bitvec; // 32 bits, all zero

bool is_set = bitvec.any();            // false, all bits are zero

bool is_not_set = bitvec.none();      // true, all bits are zero

如果需要知道置为1的二进制位的个数,可以使用count操作,该操作返回置为1的二进制位的个数:

size_t bits_set = bitvec.count(); // returns number of bits that are on

count操作的返回类型是标准库中命名为size_t的类型。size_t类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版本。它是一个与机器相关的unsigned类型,大小可以保证存储内存中对象。

与vector和string中的size操作一样,bitset的size操作返回bitset对象中二进制位的个数,返回值的类型是size_t:

size_t sz = bitvec.size(); // returns 32

2. 访问bitset对象中的位

可以用下标操作符来读或写某个索引位置的二进制位,同样地,也可以用下标操作符测试给定二进制位的值或设置某个二进制位的值:

// assign 1 to even numbered bits

for (int index = 0; index != 32; index += 2)

           bitvec[index] = 1;

上面的循环把bitvec中的偶数下标的位都置为1。

除了用下标操作符,还可以用set、test和reset操作来测试或设置给定二进制位的值:

// equivalent loop using set operation

for (int index = 0; index != 32; index += 2)

           bitvec.set(index);

为了测试某个二进制位是否为1,可以用test操作或者测试下标操作符的返回值:

if (bitvec.test(i))

    // bitvec[i] is on

// equivalent test using subscript

if (bitvec[i])

    // bitvec[i] is on

如果下标操作符测试的二进制位为1,则返回的测试值的结果为true,否则返回false。

3. 对整个bitset对象进行设置

set和reset操作分别用来对整个bitset对象的所有二进制位全置1和全置0:

bitvec.reset();    // set all the bits to 0.

bitvec.set();      // set all the bits to 1

flip操作可以对bitset对象的所有位或个别位按位取反:

bitvec.flip(0);   // reverses value of first bit

bitvec[0].flip(); // also reverses the first bit

bitvec.flip();    // reverses value of all bits

4. 获取bitset对象的值

to_ulong操作返回一个unsigned long值,该值与bitset对象的位模式存储值相同。仅当bitset类型的长度小于或等于unsigned long的长度时,才可以使用to_ulong操作:

unsigned long ulong = bitvec3.to_ulong();

cout << "ulong = " << ulong << endl;

to_ulong操作主要用于把bitset对象转到C风格或标准C++之前风格的程序上。如果bitset对象包含的二进制位数超过unsigned long的长度,将会产生运行时异常。本书将在6.13节介绍异常(exception),并在17.1节中详细地讨论它。

5. 输出二进制位

可以用输出操作符输出bitset对象中的位模式:

bitset<32> bitvec2(0xffff); // bits 0 ... 15 are set to 1; 16 ... 31 are 0

cout << "bitvec2: " << bitvec2 << endl;

输出结果为:

bitvec2: 00000000000000001111111111111111

6. 使用位操作符

bitset类也支持内置的位操作符。C++定义的这些操作符都只适用于整型操作数,它们所提供的操作类似于本节所介绍的bitset操作。5.3节将介绍这些操作符。

习题                                                          

习题3.23  解释下面每个bitset对象包含的位模式:

   (a) bitset<64> bitvec(32);

   (b) bitset<32> bv(1010101);

   (c) string bstr; cin >> bstr; bitset<8> bv(bstr);

习题3.24  考虑这样的序列1,2,3,5,8,13,21,并初始化一个将该序列数字所对应的位置置为1的bitset<32>对象。然后换个方法,给定一个空的bitset对象,编写一小段程序把相应的数位设置为1。

 

小结                                           

C++标准库定义了几种高抽象程度的数据类型,包括string和vector类型。string类型提供了变长的字符串,而vector类型则管理同一类型的对象集合。

迭代器实现了对存储于容器中对象的间接访问。迭代器用于对string类型和vector类型的元素进行访问和遍历。

下一章将介绍作为C++内置数据类型的数组和指针类型。这些类型提供类似于vector和string标准库类型的低级抽象类型。总的来说,相对于C++内置数据类型的数组和指针而言,程序员应优先使用标准库类类型。

术语                                           


abstract data type(抽象数据类型) 隐藏其实现的数据类型。使用抽象数据类型时,只需要了解该类型所支持的运算。

bitset  保存一组位的集合,并提供在位集合上的测试和置位操作的标准库类类型。

cctype header(cctype头文件) 从C标准库继承来的头文件,包含一组测试字符值的例程。8.3.4节的表3-3列出了常用例程。

class template(类模板) 一个可创建许多潜在类类型的蓝图。使用类模板时,必须给出实际的类型和值。例如,vector类型是保存给定类型对象的模板。创建一个vector对象时,必须指出这个vector对象所保存的元素的类型。vector<int>保存int的对象,而vector <string>则保存string对象,以此类推。

container(容器) 一种类型,其对象保存一组给定类型的对象的集合。

difference_type  一种由vector类型定义的signed整型类型,用于存储任意两个迭代器间的距离。

empty  由string类型和vector类型定义的成员函数。empty返回bool值,用于检测string是否有字符或vector是否有元素。如果string或vector的size为0,则返回true,否则返回false。

getline  string头文件中定义的函数,该函数接受一个istream对象和一个string对象,读取输入流直到下一个换行符,存储读入的输入流到string对象中,并返回istream对象。换行符被读入并丢弃。

high-order(高阶) bitset对象中索引值最大的位。

index(下标) 下标操作符所使用的值,用于表示从string对象或vector对象中获取的元素。也叫“索引”。

iterator(迭代器) 用于对容器类型的元素进行检查和遍历的数据类型。

iterator arithmetic(迭代器的算术操作) 应用于一些(并非全部)迭代器类型的算术操作。迭代器对象可以加上或减去一个整型数值,结果迭代器指向处于原迭代器之前或之后若干个元素的位置。两个迭代器对象可以相减,得到的结果是它们之间的距离。迭代器算术操作只适用于指向同一容器中的元素或指向容器末端的下一元素迭代器。

low-order(低阶) bitset对象中索引值最小的位。

off-the-end iterator(起出末端的迭代器) 由end操作返回的迭代器,是一种指向容器末端之后的不存在元素的迭代器。

push_back  由vector类型定义的成员函数,用于把元素追加到vector对象的尾部。

sentinel(哨兵) 使用一个值作为保护措施来控制处理过程的一种程序设计技术。在本章中,例示了由end操作返回的迭代器作为保护措施,当处理完vector对象中的所有元素后,它被用来停止处理vector中的元素。

size  由库类型string、vector和bitset此三个定义的函数,分别用于返回类型的字符个数、元素个素、二进制位的个数。string和vector类的size成员函数返回size_ type类型的值(例如,string对象的size操作返回string::size_type类型值)。bitset对象的size操作返回size_t类型值。

size_t  在cstddef头文件中定义的机器相关的无符号整数类型,该类型足以保存最大数组的长度。

size_type  由string类类型和vector类类型定义的类型,用以保存任意string对象或vecotr对象的长度。标准库类型将size_type定义为unsigned类型。

using declarations(using声明) 使命名空间的名字可以被直接引用:

using namespace::name;

用了using声明后,可以直接访问name而无须前缀namespace::。

value initialization(值初始化) 当给定容器的长度,但没有显式提供元素的初始式时,对容器元素进行的初始化。元素被初始化为一个编译器产生的值的副本。如果容器保存内置类型变量,则元素的初始值将置为0。如果容器用于放置类对象,则元素的初始值由类的默认构造函数产生。只有当类提供了默认构造函数,类类型的容器元素才能进行值初始化。

++operator(++操作符) 迭代器类型定义的自增操作符,通过“加1”移动迭代器指向下一个元素。

::operator(::操作符) 作用域操作符。::操作符在其左操作数的作用域内找到其右操作数的名字。用于访问某个命名空间中的名字,如std::cout,表明名字cout来自命名空间std。同样地,可用来从某个类取名字,如string::size_type,表明size_type是由string类定义的。

[ ]operator([ ]操作符) 由string, vector和bitset类型定义的重载操作符。它接受两个操作数:左操作数是对象名字,右操作数是下标值。用于取出位置与下标值相符的元素,下标计数从0开始,即第一个元素的下标为0,最后一个元素的下标为obj.size() -1。下标操作返回左值,因此可将下标操作作为赋值操作的左操作数。对下标操作的结果赋值是赋一个新值到相应的元素。

*operator(*操作符) 迭代器类型定义了解引用操作符来返回迭代器所指向的对象。解引用返回左值,因此可将解引用操作符用作赋值操作的左操作数。对解引用操作的结果赋值是赋一个新值到相应的元素。

<<operator(<<操作符) 标准库类型string和bitset定义了输出操作符。string类型的输出操作符将输出string对象中的字符。bitset类型的输出操作符则输出bitset对象的位模式。

>>operator(>>操作符) 标准库类型string和bitset定义了输入操作符。string类型的输入操作符读入以空白字符为分隔符的字符串,并把读入的内容存储在右操作数(string对象)中。bitset类型的输入操作符则读入一个位序列到其bitset操作数中。

别再死记硬背了!用51单片机的AD/DA和PWM,亲手做个简易示波器信号发生器 本文详细介绍了如何利用51单片机的PWM和AD/DA功能制作简易示波器信号发生器。通过PWM模拟DAC输出波形,结合XPT2046 ADC进行信号测量,实现方波、三角波和正弦波的生成与显示。项目不仅成本低廉,还能帮助电子爱好者深入理解51单片机的核心功能,是理论与实践结合的绝佳案例。 阅读详情

相关推荐

手把手实战:快速构建合同智能审查Agent

配置“模型供应商”,选择 “OpenAI-API-compatible”,输入申请到的 “API Key” 和 “URL” 后点击“保存”,如下图示例完成 “AlayaNew/DeepSeek-R1。至此,我们完成了合同智能审核Agent的构建,我们也可以在Dify中把这个智能体发布为API服务,这样企业其它应用如OA就可以通过API集成,在原合同流程中实现智能审核工作。该节点“输入变量”中,配置从“开始”节点中获取上传的文件,输出变量就是合同的内容,配置如下图。接下来我们开始创建智能体。

weixin_46880696的博客 4403

bitset——定义及常用操作。

前言:今天碰见了这个操作,发现在状态压缩的时候特别好用,就整理一下吧。 bitset 就相当于一个 只能存储二进制,也就是 0 和 1 的 bool 数组 但是可以直接当作一个数进行左移右移,取或取反等二进制操作。 如果直接用 bool 数组存储二进制每一位的话,n 位存储复杂度为 O(n),但是用 bitset 的话复杂度会减少到 O(n/32)。 所以一般用二进制状态压缩时就会用 bitset。 一、定义: 对于 bitset 的定义有四种方式: 1、直接定义,每一位初始为0: bitset<

Mr_dimple的博客 1万+

RISC-V— 架构基础知识学习

蜂鸟 E200 系列是一个开源的RISC-V 处理器。蜂鸟 E200 系列由中国大陆研发团队开发,用户能够轻松与开发人员取得交流和支持。RI蜂鸟 E200 处理器研发团队拥有在国际一流公司多年开发处理器的经验,使用稳健的Verilog 2001 语法编写的可综合 RTL 代码,以工业级标准进行开发。蜂鸟 E200 的代码为人工编写,添加丰富的注释且可读性强,非常易于理解。

deilt 1万+

bitset用法

最近才发现有个bitset函数 #include &lt;iostream&gt; #include &lt;bitset&gt; using namespace std; int main() { int n,m; while(cin&gt;&gt;n&gt;&gt;m) { bitset&lt;8&gt; t(n);//创建对象的时候可以直接传进去一...

qq_40620465的博客 516

从零开始:使用COLMAP与OpenMVS构建高精度三维Mesh模型

本文为零基础新手提供了使用COLMAP与OpenMVS构建高精度三维Mesh模型的完整实战指南。详细介绍了从环境配置、数据采集黄金法则,到COLMAP稀疏与稠密重建、OpenMVS网格生成与纹理映射的每一步操作,并分享了关键的避坑技巧与参数调优建议,帮助读者从二维照片中成功重建出属于自己的三维模型。

metal的博客 506

comsol移动网格_comsol模拟移动的纳秒脉冲激光烧蚀材料,温度场分布,结果总不理想,求助大佬!!...

本人comsol新手一枚,希望大家多多指点研究课题:纳秒脉冲激光刻蚀材料表面想用comsol模拟刻蚀过程中的温度场分布,脉宽为300ns,重复频率100kHz,光斑移动速度为5000mm/s,光斑直径50um,激光功率10W,材料种类为:有机涂层,属性如下目前,采用的是一个移动的高斯面光源x脉冲函数,脉冲函数我用的是一个周期性方波:周期性拓展后,画出来的脉冲图,不知道为什么在0~1s的区间内只有1...

weixin_33288893的博客 4742

C++ STL bitset的用法

C++ STL bitset的用法 2018年10月24日 01:04:05 Lee_01 阅读数:22更多 个人分类: C++ 1.声明和初始化 std::bitset是STL的一个模板类,模板参数不是类型,而是整型数值,可以像数组一样使用位。 #include&lt;bitset&gt; std::bitset&lt;8&gt;bs; //声明了以bitset对象bs,bs可...

hewusheng10的专栏 556

Tailscale 自建 DERP 中继服务器

Tailscale自建DERP中继服务器

Accompagner的博客 4335

STL之bitset

简介 bitsetbitsetbitset说白了就是010101数组,或者说是010101字符串,然后赋予了整体的一些位运算等操作。 bitsetbitsetbitset是以位为单位存的,空间复杂度较低,bitsetbitsetbitset的操作都可以看做是常数时间复杂度,经常用于优化代码。 构造函数 无参构造。 bitset<32> b; 传入intintint参数,将该数的二进制保存在bitsetbitsetbitset中。 bitset<32> b(16); 传入01010

Happig的博客 274

基于AUTOSAR的汽车电子项目--电动助力转向系统

基于AUTOSAR的汽车电子项目开发通常涵盖广泛的领域,例如动力系统控制、车身电子、信息娱乐系统、高级驾驶辅助系统(ADAS)等。以下是一个简化的示例项目,展示了如何在AUTOSAR环境下开发一个电动助力转向系统(Electric Power Steering, EPS)的控制软件

MHD0815的博客 2131

【SAP HANA 24】HANA与Oracle SQL语法对照表

HANA SQL参考及Oracle 语法对照

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 1426

std::bitset使用

std::bitsetstd::bitset模板文件声明初始化重载的位操作符访问赋值其他函数转换 std::bitset bitset是一种类似于数组的结构,不过只能存1or 0,而且优化内存空间,一个元素只占1bit 模板文件声明 //注意bitset中存储的最大bits数由模板参数N决定 template <size_t N> class bitset; 因为上面的size_t N决定了bitset最多存储的位数,所以得先看看size_t的定义 关于size_t定义   size_t是一种

selfsongs 4647

MMCVDeformConv2d转TensorRT记录

MMCVDeformConv2d转Tensorrt

qq_35435798的博客 1780

标准库bitset类型

 

水镜の庐 892

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

标准库类型bitset类型

//标准库bitset类型 //bitset头文件:#include //bitset的定义:bitset 变量名; //bitset的初始化方式: //bitset b; b有n位,每位都为0 //bitset b(u); b是unsigned long u的一个副本 //bitset b(s); b是string对象s中含有的位串的副本 //bitset b(s,pos,

The_Dream_of_Rookie的博客 519

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

第17章 标准库特殊设施 - bitset 类型

17.2 BITSET类型 标准库定义了 bitset 类,使得位运算的使用更为容易,并且能够处理超过最长整型类型大小的位集合。bitset 类定义在头文件 bitset 中。 17.2.1 定义和初始化bitset bitset 类是一个类模板,它类似 array 类,具有固定的大小。当我们定义一个 bitset 时,需要声明它包含多少个二进制位: bitset<32> bitvec(1U); // 32 位;低位为 1,其他位为 0 这条语句定义bitvec为一个包含 32 位的bitse

滋滋的博客 334

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C++标准库(八):bitset 类型

本文为《C++ Primer》的读书笔记 目录定义和初始化`bitset`默认初始化使用`unsigned long long` 初始化从一个`string` / 字符数组 初始化`bitset``bitset`操作 #include <bitset> 标准库定义了bitset类, 使得位运算的使用更为容易, 并且能够处理超过最长整型类型大小的位集合 定义和初始化bitset 可以通过位置来访问bitset中的二进制位。例如,bitvec包含编号从0到31的32个二进制位。编号从0开始的二进

连理o的博客 2450

C++标准库bitset类型的存储方式

C++标准库bitset类型的存储方式  隔了好几天,今晚终于有空来到chinaunix发表下对bitset类型的看法,最近很累,但还是抽点时间来总结一下下。 前几天对bitset有一个模糊的概念,对bitset对象里面的存储顺序不太清楚,于是写了一个小程序验证了一下,终于领悟到了这点小case。 首先声明一个bitset对象: bitset bitvec; bits

GNU'S Not Unix 769

bitset类型, 标准库类型

C++ primer 17.2 bitset类型, 标准库类型 1 使得位运算更容易实现, 并且能够处理超过最长整型大小的位集合. bitset定义在bitset中 定义和初始化bitset 1 bitset b; b有n位,每一位均为0,从零开始 2 bitsetb(u); ...

weixin_30652897的博客 85

标准库类型(vector 、string、 bitset类型)

<br />1、命名空间的using声明<br />    格式:<br />    1)using namespace::name;         如 using std::cin;<br />    2)using namespace 命名空间名;    如 using namespace std;<br />2、string类型<br />    1)必须包含的头文件<br />     #include  <string><br />     using std::string;<br />   

allen_1986的专栏 958

C++ 标准库 bitset类型

C++ 标准库 bitset类型 有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供了bitset类使得处理位集合更容易一些。要使用bitset类就必须要包含相关的头文件。 1,bitset对象的定义和初始化 #include #include #include using names

张亚州的博客 443

标准库——bitset类型

关于标准库中sring、vector、set、map、queue、stack 、bitset等,方法有些记不清楚,每次用每次查,很费时间,干脆自己整理一下,记不住的时候,查询更方便。 // 需要包含头文件和声明: #include<bitset> using std::bitset; bitset对象的定义和初始化 bitset类型对象的区别仅在其长度,而不在其类型。定义时,&...

优快云的博客 522

【C++ Primer】标准库bitset类型

/* *标准库bitset类型 *Zhi-Yun Deng *2013-10-31 */ #include #include //标准库bitset类型头文件 #include #include //size_t类型定义在cstddef头文件中 using std::cin; using std::cout; using std::endl; using std::bitset;//bi

志赟的专栏 701

初识标准库bitset类型

对于要处理二进制位的有序集,每个位可能包含0或1值,我们可以用C++标准库中的bitset类型。 该类型的声明与vector等基本相同,不同的是vector定义时是存放的数据类型,而bitset存放的是大小, 例如: bitset&lt;32&gt; bitvec;//32 bits,all zero 对其初始化有以下几种方法: 1.bitset&lt;n&gt; b;   //b有n位...

waterboy_cj的博客 200

C++:标准库类型(string、vector、list、bitset)

两种最重要的标准库类型是 string 和 vector。 1、标准库 string 类型 与其他的标准库类型一样,用户程序要使用 string 类型对象,必须包含相关头文件。如果提供了合适的 using 声明,那么编写出来的程序将会变得简短些: #include using std::string; string类有以下几种初始化方式: string s1; //

jinzhao1993的博客 1493
上一篇: c++位运算
下一篇: 影响计算机算法世界的十位大师
李海峡
博客等级 码龄24年 27粉丝 59原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值