bitset
# 引入
所谓位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。
常见位图的应用如下:
- 快速查找某个数据是否在一个集合中。
- 求两个集合的交集、并集等。
- 操作系统中磁盘块标记。
- 内核中信号标志位(信号屏蔽字和未决信号集)。
# 构造函数
构造一个16位的位图,所有位都初始化为0。
bitset<16> bs1; //00000000000000001
方式二: 构造一个16位的位图,根据所给值初始化位图的前n位。
bitset<16> bs2(0xfa5); //00001111101001011
方式三: 构造一个16位的位图,根据字符串中的0/1序列初始化位图的前n位。
bitset<16> bs3(string("10111001")); //0000000010111001
# 其他函数
成员函数 | 功能 |
---|---|
set | 设置指定位或所有位 |
reset | 清空指定位或所有位 |
flip | 反转指定位或所有位 |
test | 获取指定位的状态 |
count | 获取被设置位的个数 |
size | 获取可以容纳的位的个数 |
any | 如果有任何一个位被设置则返回true |
none | 如果没有位被设置则返回true |
all | 如果所有位都被设置则返回true |
上次更新: 2025/02/07, 18:31:39