位集合容器(bitset),bitset容器是一个bit位元素的序列容器,每个元素只占一个bit位,取值只有0和1,因此很节省空间。位集是用来保存一组项或者条件的yes/no(1或者0)信息的一种简洁方法。bitset为我们简化了对于位集的处理。头文件为#include<bitset>
1.创建bitset对象
创建对象是,必须要制定容器的大小。一经定义就不能在改变。下面个这个语句定义了birset对象b,他有n个元素即n个bit位,此时所有元素值都为0;
biset<n> b;//n位多少个bit位
2.bitset类提供的方法
再补充一个:os << 把b中的位集输出到os流 ,即可以用cin和cout输出
也可以采取下标的方式给元素赋值和输出。
注意他的下标和位置是从后往前查
#include<bits/stdc++.h>
using namespace std;
int main()
{
bitset<10> b;
b[0] = 1; b[9] = 1;
for(int i = 0; i < b.size(); i++) cout<<b[i];
cout<<endl;
//采用set一次将元素设置为1
b.set();
cout << b << endl;
//采用reset一次将元素设置为0
b.reset();
cout << b << endl;
//采用set将pos位置元素设置为1
b.set(5);b.set(6,1); // 5 6位置设置为1
cout << b << endl;
//采用reset将pos元素设置为0或用set将pos位置设置为0
b.reset(5); b.set(6,0); //5 6 位置设置为0
cout << b << endl;
b.set(2);//第二位置为1
cout << b << endl;
//采用to_ulong将这个b转化为数字输出
cout<<b.to_ulong();
return 0;
}