C++中的bitset容器
1.头文件:
#include <bitset>
2.声明一个容器:
(a)声明一个指定位数的空容器(所有位设为0): bitset<int> bits;
(b)声明一个指定位数并将指定的几个位初始化为相应值的容器: bitset<n> bits(int);
bitdet<int> bits(string&)
总结:bitset模板类中类型参数传递容器的位数,而构造函数参数通过一个int或一个string&值来从右至左初始化容器中的相应值。
3.bitset的基本用法:
操作 功能 用法
test(pos) pos位是否为1 a.test(4)
any() 任意位是否为1 a.any()
none() 是否没有位为1 a.none()
count() 值是1的位的小数 a.count()
size() 位元素的个数 a.size()
[pos] 访问pos位 a[4]
flip() 翻转所有位 a.flip()
flip(pos) 翻转pos位 a.flip(4)
set() 将所有位置1 a.set()
set(pos) 将pos位置1 a.set(4)
reset() 将所有位置0 a.reset()
reset(pos) 将pos位置0 a.reset(4)
4.bitset与传统C位操作及字符串的转换
可以通过to_string()成员将容器转输出为一个string字符串,另外还可以用to_long()成员将容器输出到传统的用于C风格的位容器中。如:
unsigned long bits = bits.to_long();
sting str(bits.to_string());
1.头文件:
#include <bitset>
2.声明一个容器:
(a)声明一个指定位数的空容器(所有位设为0): bitset<int> bits;
(b)声明一个指定位数并将指定的几个位初始化为相应值的容器: bitset<n> bits(int);
bitdet<int> bits(string&)
总结:bitset模板类中类型参数传递容器的位数,而构造函数参数通过一个int或一个string&值来从右至左初始化容器中的相应值。
3.bitset的基本用法:
操作 功能 用法
test(pos) pos位是否为1 a.test(4)
any() 任意位是否为1 a.any()
none() 是否没有位为1 a.none()
count() 值是1的位的小数 a.count()
size() 位元素的个数 a.size()
[pos] 访问pos位 a[4]
flip() 翻转所有位 a.flip()
flip(pos) 翻转pos位 a.flip(4)
set() 将所有位置1 a.set()
set(pos) 将pos位置1 a.set(4)
reset() 将所有位置0 a.reset()
reset(pos) 将pos位置0 a.reset(4)
4.bitset与传统C位操作及字符串的转换
可以通过to_string()成员将容器转输出为一个string字符串,另外还可以用to_long()成员将容器输出到传统的用于C风格的位容器中。如:
unsigned long bits = bits.to_long();
sting str(bits.to_string());
![](https://i-blog.csdnimg.cn/blog_migrate/2f60c0bc47d4178ac5e2b807936153ff.gif)