简单谈谈C++ 头文件系列之(bitset)

 更新时间:2017年02月12日 12:02:03   作者:lgxZJ  
我们要使用bitset,首先需要包含头文件bitset。和vector对象不一样的是bitset类型对象的区别仅在其长度而不在其类型。在定义bitset的时候,要明确bitset包含了多少位,须在尖括号内给出它的长度值。长度值必须定义为整形字面值常量或是已用常量值初始化的整型的const对象

简介

该头文件有关位集,实际上是vector

位本质上对应bool的概念,只有0或1,true或false两种对立的值。 但很可惜,字节才是机器上最小的存储单元,所以bool基本上是由一个字节大小。

bitset是出于高效的空间利用为目的才出现的。

位操作

operator [] : 通过下标访问bit。
count : 计数位值为1的位个数。
size : 返回位的大小,即有多少个位。
test : 测试下标指向的位值是否为1。
any : 判断是否有任何一个位值为1。
none : 判断是否没有任何一个位值为1.
all : 判断是否所有位值为1.
set : 设置某一个位值为1.
reset : 重置某一个位值为0.
flip : 翻转某一个位值,即0变1,1变0.

转换函数

to_string : 转换成字符串。
to_ulong : 转换成unsigned long。
to_ullong : 转换成unsigned long long。

位集操作

在这里,bitset可以看成以01位代表的整数。 对于整数,我们又很多操作可以执行:或、并、亦或、左移等等。 头文件重载了这些操作符,方便我们对位集进行运算:

&、&=
|、|=
^、^=
<<、<<=
>>、>>=
~
==
!=

reference type

因为C++最小的内置类型大小是1个字节,而bit概念上只需要1个bit,所以,与vector

相关文章

  • C语言文件操作函数freopen详细解析

    C语言文件操作函数freopen详细解析

    替换一个流,或者说重新分配文件指针,实现重定向。如果stream流已经打开,则先关闭该流。如果该流已经定向,则freopen将会清除该定向。此函数一般用于将一个指定的文件打开一个预定义的流:标准输入、标准输出或者标准出错
    2013-10-10
  • c++实现堆排序的示例代码

    c++实现堆排序的示例代码

    本文主要介绍了c++实现堆排序的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • C语言五子棋小游戏实现代码

    C语言五子棋小游戏实现代码

    这篇文章主要为大家详细介绍了C语言五子棋小游戏实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • C++ 情怀游戏扫雷的实现流程详解

    C++ 情怀游戏扫雷的实现流程详解

    扫雷是电脑上很经典很经典的传统老游戏,从小编第一次摸到计算机开始就玩过扫雷,虽然当时并不理解玩法原理,但终是第一次玩电脑游戏,下面来从扫雷的前世今生讲起
    2021-11-11
  • C++中的RTTI机制详解

    C++中的RTTI机制详解

    这篇文章主要介绍了C++中的RTTI机制详解,本文详细的总结了RTTI的相关知识,需要的朋友可以参考下
    2014-10-10
  • C++实现屏幕截图功能

    C++实现屏幕截图功能

    这篇文章主要为大家详细介绍了C++实现屏幕截图功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • 用C语言进行最基本的socket编程

    用C语言进行最基本的socket编程

    这篇文章主要介绍了C语言下socket编程的基本知识讲解,包括最基本的客户端发送及服务器端接受数据的实现,需要的朋友可以参考下
    2015-11-11
  • C语言数据结构算法之实现快速傅立叶变换

    C语言数据结构算法之实现快速傅立叶变换

    这篇文章主要介绍了C语言数据结构算法之实现快速傅立叶变换的相关资料,需要的朋友可以参考下
    2017-06-06
  • C语言线性表顺序存储结构实例详解

    C语言线性表顺序存储结构实例详解

    这篇文章主要介绍了C语言线性表顺序存储结构实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • C++中Boost的智能指针scoped_ptr

    C++中Boost的智能指针scoped_ptr

    这篇文章介绍了C++中Boost的智能指针scoped_ptr,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07

最新评论