概念
bitset可以看做是二进制位的容器,并提供了位的相关操作函数。
常用函数
- 构造赋值函数
- bitset();
- bitset(const bitset&):复制构造函数
- bitset(unsigned long val):由无符号长整型数构建位容器
- bitset(const string& str,size_t pos=0,size_t n = -1):由字符串创建位容器
- bitset& operator=(const bitset&):赋值操作
- 逻辑运算操作(与,或,非)
- bitset& operator&=(const bitset&):返回两个位容器"与"后的引用,并修改第一个位容器值。
- bitset& operator|=(const bitset&):返回两个位容器"或"后的引用,并修改第一个位容器值。
- bitset& operator^=(const bitset&):返回两个位容器"异或"后的引用,并修改第一个位容器值。
- bitset& operator<<=(size_t):返回位容器左移size_t位后的引用,并修改位容器值。
- bitset& operator>>=(size_t):返回位容器右移size_t位后的引用,并修改位容器值。
- bitset operator<<(size_t) const:返回位容器左移size_t位后的备份
- bitset operator>>(size_t) const:返回位容器右移size_t位后的备份
- bitset operator&(const bitset&,const bitset&):返回两个位容器"与"后的备份
- bitset operator|(const bitset&,const bitset&):返回两个位容器"或"后的备份
- bitset operator^(const bitset&,const bitset&):返回两个位容器"异或"后的备份
- 其他操作函数
- string to_String():位容器内容转化为字符串,便于显示
- size_t size() const:返回位容器大小
- size_t count() const:返回设置1位个数
- bool any() const:是否有位设置1
- bool none() const:是否没有位设置1
- bool test(size_t n) const:测试某位是否为1
- bool operator[](size_t n) const:随机访问位元素
- unisigned long to_ulong() const:若没有溢出异常,返回无符号长整形数。
- bitset& set():位容器所有位置1.
- bitset& flip():位容器所有位翻转.
- bitset& reset():位容器所有位置0.
- bitset& set(size_t n,int val=1):设置某位为1或0,默认为1
- bitset& reset(size_t):复位某位为0.
- bitset flip(size_t n):翻转某位。
使用
str="010101";
bitset<40> bst(str);
bst.size();//40
bst.count();//3
str.size();//6