zoukankan      html  css  js  c++  java
  • bitset

    bitset类 有些类似bool数组

    全部有1 和 0组成的一个字符数组

    首先引入头文件

    #include <bitset>

    定义一个bitset类对象

    bitset<4> bit_val;

    意思是定义一个bitset对象,名字叫 bit_val ,长度为4,目前没有赋值 ,也就是 这个值是 0000

    bitset<4> bit_val(7);

    赋初值为7 ,我们知道 7 的二进制表示为 0111,所以 bit_cal 的值是 0111,也可以写16进制 比如 0x07

    当然了也可以直接给0111

    string str("111");
    bitset<4> bit_val(str);

    位运算

    << >> |  & ~ 都可以用在bitset类上

    随便用几个试试:

    int main()
    {
        bitset<8> val_bit(string("10111011"));
        cout<<val_bit<<endl;
        cout<<(~val_bit)<<endl;
        cout<<(val_bit<<3)<<endl;
        cout<<(val_bit>>3)<<endl;
    }

    输出结果

    10111011
    01000100
    11011000
    00010111

    复制过来bitset的成员函数

    对于一个叫做bit的bitset:
    bit.size()      返回大小(位数)
    bit.count()     返回1的个数
    bit.any()       返回是否有1
    bit.none()      返回是否没有1
    bit.set()       全都变成1
    bit.set(p)      将第p + 1位变成1(bitset是从第0位开始的!) 
    bit.set(p, x)   将第p + 1位变成x
    bit.reset()     全都变成0
    bit.reset(p)    将第p + 1位变成0
    bit.flip()      全都取反
    bit.flip(p)     将第p + 1位取反
    bit.to_ulong()  返回它转换为unsigned long的结果,如果超出范围则报错
    bit.to_ullong() 返回它转换为unsigned long long的结果,如果超出范围则报错
    bit.to_string() 返回它转换为string的结果

    也可以到这个网站上查看

    http://www.cplusplus.com/reference/bitset/bitset/

  • 相关阅读:
    【链表】Bzoj1098[POI2007]办公楼biu
    【构造】Bzoj1432[ZJOI2009]Function
    【Dp】Bzoj1296 [SCOI2009] 粉刷匠
    【二分贪心】Bzoj3969 [WF2013] Low Power
    【递推】Bzoj3612[Heoi2014]平衡
    HDU-3718 Similarity
    HDU-3435 A new Graph Game
    HDU-3488 Tour
    HDU-1853 Cyclic Tour
    HDU-1533 Going Home
  • 原文地址:https://www.cnblogs.com/qifeng1024/p/12612207.html
Copyright © 2011-2022 走看看