【转】bitset

构造函数

  #include < bitset >

  bitset< n > b; 
  b有n位,每位都为0,参数n可以为一个表达式. 
  如bitset<5> b0;则”b0”为”00000”;

  bitset< n > b(unsigned long u); 
  b有n位,并用u赋值;如果u超过n位,则顶端被截除 
  如:bitset<5>b0(5);则”b0”为”00101”;

  bitset< n > b(string s); 
  b是string对象s中含有的位串的副本 
  string bitval ( “10011” ); 
  bitset<5> b0 ( bitval4 ); 
  则”b0”为”10011”;

赋值

  bitset重载了[]运算符,故可以像bool数组那样赋值 
  bi[2] = 1; 
  这样就能将第二位赋值为1

常用函数

  b1 = b2 & b3;//按位与 
  b1 = b2 | b3;//按位或 
  b1 = b2 ^ b3;//按位异或 
  b1 = ~b2;//按位补 
  b1 = b2 << 3;//移位 
  int one = b1.count();//统计1的个数

  bool any( ) 
    是否存在置为1的二进制位?和none()相反 
  bool none( ) 
    是否不存在置为1的二进制位,即全部为0?和any()相反. 
  size_t size( ) 
    二进制位的个数 
   flip() 
    把所有二进制位逐位取反 
  set() 
    把所有二进制位都置为1 
  reset() 
    把所有二进制位都置为0 
  unsigned long to_ulong( ) 
    用同样的二进制位返回一个unsigned long值 
  string to_string () 
    返回对应的字符串.

习题

UVALive 7272

posted @ 2016-08-22 13:48  rpSebastian  阅读(110)  评论(0)    收藏  举报