STL之bitset

默认分类 · 2024-06-03 · 107 人浏览

用位来表示一个数,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间。

头文件:

#include<bitset>

定义

bitset<size> bs(initNum)
其中 size 为 bitset 的容量,initNum 为初始值, 是转化为size长度二进制后赋给c的所有位, 还可以用01字符串来初始化,默认初始化为全0

访问

可以使用 [] 来访问,例如 bs[1] = 1; , 注意, 非0值会赋值成1, 0值赋值为0

常用成员函数

c.size()      // 返回大小(位数)
c.count()     // 返回1的个数
c.any()       // 返回是否有1
c.none()      // 返回是否没有1
c.set()       // 全都变成1
c.set(p)      // 将第p + 1位变成1
c.set(p, x)   // 将第p + 1位变成x
c.reset()     // 全都变成0
c.reset(p)    // 将第p + 1位变成0
c.flip()      // 全都取反
c.flip(p)     // 将第p + 1位取反
c.to_ulong()  // 返回它转换为unsigned long的结果,如果超出范围则报错
c.to_ullong() // 返回它转换为unsigned long long的结果,如果超出范围则报错
c.to_string() // 返回它转换为string的结果
c++ stl
Theme Jasmine by Kent Liao