bitset的用法

来源:互联网 发布:知乎 那些有深度的网名 编辑:程序博客网 时间:2024/06/03 22:41

bitset

bitset是C++标准库提供的用于处理位集的类模板,所谓”位集“,就是指由0和1组成的有限长度的有序集,也称为“标志位”集合。

使用bitset类,必须包含相关的头文件 #include <bitset> using std::bitset

bitset有几种形式的构造函数,由于bitset是一个类模板,所以在使用bitset的时候,必须对其实例化。bitset类模板只带一个非类

型参数,表示类对象封装的二进制位的个数。

具体的看是看例子吧:

#include <iostream>#include <bitset>using std::bitset;using std::cout;using std::endl;int main(){std::string bitval;bitset<8> bs1;bitset<8> bs2(012);//用一个数实例化bitsetbitval = "0110001";bitset<8> bs3(bitval);//用一个string类型的对象初始化bitsetbitset<8> bs4(bitval, 2, 6);bitset<20> bs5(bitval, 3);cout<<bs1<<endl;cout<<bs2<<endl;cout<<bs3<<endl;cout<<bs4<<endl;cout<<bs5<<endl;cout<<bs5.count()<<endl;//计算bitset中的位为1的个数bs5.flip(0);//在某位取反cout<<bs5<<endl;cout<<bs5.count()<<endl;//计算bitset中的位为1的个数cout<<bs5.size()<<endl;//去bitset的长度,位的个数return 0;}

需要注意的几点:

用string对象初始化bitset时,string对象中位的序号是从左到右编排的,而在bitset中位的序号是从右到左的,千万别搞混了。

原创粉丝点击