C++ 头文件系列 (bitset)

简介

该头文件有关位集,实际上是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