//构造函数
bitset<n> b //b有n位,每位都是0
//例: bitset<5> b,则b为00000
bitset<n> b(u) //b是unsigned long型u的一个副本
//例: bitset<32> b(0xffff) 则b的0~15位是1,其余都为0
//即从低位开始填写,长度不够则补0,长度超过舍弃高位
bitset<n> b(s) //b是string对象s中含有的位串的副本
//例: bitset<5> b("1100") 则b为01100
// bitset<5> b("101100") 则b为10110
//字符串的最低位为b的最高位,不够补0,多余舍弃字符串低位
bitset<n> b(s, pos, n); //b是s中从位置pos开始的n个位的副本
//例: bitset<5> b("1110101", 1, 4) 则b为00101
// bitset<5> b("1110101", 1) 则b为11010,从字符串的下标1开始到最后
//字符串初始化记住方法,对于区间(beg, end),若无beg,默认为0,
//若无end,默认为s.end();从beg开始数,取出min(n, end - beg + 1),
//若长度等于n,则为b的各位,若不等,则在前面补0
//bitset对象的操作
b.any() //b中是否存在置为1的二进制位
b.none() //b中是否不存在置为1的二进制位
b.count() //b中为1的二进制位的个数
b.size() //b中二进制位的个数
b[pos] //访问b中pos处的二进制位
b.test(pos) //b中在pos处的二进制位是否为1
b.set() //把b中所有二进制位置为1
b.set(pos) //把b中pos处的二进制位置为1
b.set() //把b中所有二进制位置为0
b.set(pos) //把b中pos处的二进制位置为0
b.flip() //把b中所有二进制位逐位取反
b.flip(pos) //把b中在pos处二进制位取反
b.to_ulong() //把b中同样的二进制位返回一个unsigned long值
os << b //把b中的位集输出到os流
bitset 用法整理
最新推荐文章于 2022-03-14 20:41:33 发布