1. 程式人生 > >C++STL---bitset位集合容器

C++STL---bitset位集合容器

一、解釋

bitset容器是一個bit位元素的序列容器,每個元素只佔一個bit位,取值為0或1。

方法 功能
b.any() b中是否存在置為1的二進位制位
b.none() b中不存在置為1的二進位制?
b.count() b中置為1的二進位制個數
b.size() b中二進位制位的個數
b[pos] 訪問b中在pos位置上的二進位制位
b.test[pos] b中二進位制位是否為1
b.set() b中全部置為1
b.set(pos) 把b中pos位置上二進位制置為1
b.rest() b中全部置為0
b.rest(pos) 把b中pos位置上二進位制置為0
b.flip() 按位取反(0->1,1->0)
os<<b 把b中的位集輸出到os流中
b.to_ulong() 把b中的二進位制返回一個unsigned long值
   

二、用法
 (1)建立物件

  

 bitset<100000>b;
//建立了一個能夠容納100000個的元素,此時每一個元素都為0

(2)設定元素值

  通過索引來設定

  

  b[1]=1;
  b[2]=1;
  b[3]=1;

   通過set()、reset()函式來設定

  

 b.set();//通過set函式,一次性將元素設定為1
 b.set(0,0);//設定索引為0的位為0
 b.reset(1);//使用reset設定索引為1的位為0

   (3)輸出資料

  

#include<iostream>
#include<bitset>
#include<string>
using namespace std;
int main()
{ bitset<10>b;
  b.set();
   for(int i=b.size()-1;i>=0;i--)
   {
     cout<<b[i]<<endl;
    }
    return 0;
}