zoukankan      html  css  js  c++  java
  • C++ 头文件系列 (bitset)

    简介

    该头文件有关位集,实际上是vector对应的固定大小版本(fix-sized),位的大小在编译期固定。

    位本质上对应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一样,bitset也有一个代理成员类reference, 用来执行bit相关的操作。

  • 相关阅读:
    grails How to check if element in groovy array/hash/collection/list? Stack Overflow
    慧忠里自提点
    GroovyQ | 关注Groovy社区动态,分享Groovy开发经验。
    strupr strlwr
    Faqseafilevssvn seafile
    C++ STL下载和安装
    Emacs中学习gdb调试
    Readlineselect
    Diskfileio GongGeng
    Achieving Groovylike Fluency in Java with Google Collections | The Kaptain on ... stuff
  • 原文地址:https://www.cnblogs.com/lgxZJ/p/6384991.html
Copyright © 2011-2022 走看看