C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset操作

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset操作相关的知识,希望对你有一定的参考价值。

1. bitset操作 函数

操作解释
b.any()b中是否存在1。
b.all()b中都是1。
b.none()b中是否没有1。
b.count()b中1的个数。
b.size()长度
b.test(pos)pos下标是否是1
b.set(pos)pos置1
b.set()所有都置1
b.reset(pos)将位置pos处的位复位
b.reset()将b中所有位复位
b.flip(pos)将位置pos处的位取反
b.flip()将b中所有位取反
b[pos]访问b中位置pos处的位;如果b是const的,则当该位置位时,返回true;否则返回false。
b.to_ulong()返回一个unsigned long值,其位模式和b相同。如果b中位模式不能放入指定的结果类型,则抛出一个overflow_error异常。
b.to_ullong()类似上面,返回一个unsigned long long值。
b.to_string(zero, one)返回一个string,表示b中位模式。zero和one默认为0和1。
os << b将b中二进制位打印为字符1或0,打印到流os。
is >> b从is读取字符存入b。当下一个字符不是1或0时,或是已经读入b.size()个位时,读取过程停止。
bitvec.flip ( 0); //翻转第一位
bitvec.set (bitvec.size() - 1)/ / 置位最后一位
bitvec.set (0, 0);/ / 复位第一位
bitvec.reset (i);/ / 复位第i位
bitvec.test ( 0);//返回 false, 因为第一位是复位的

bitvec [ 0 ] = 0/ / 将第一位复位
bitvec [31] = bitvec [ 0]; / / 将最后一位设置为与第一位一样
bitvec [ 0 ].flip ( ); / / 翻转第一位
~bitvec [ 0 ]; / / 等价操作, 也是翻转第一位
bool b = bitvec [ 0 ]; // 将 bitvec [ 0 ] 的值转换为 bool 类型


以上是关于C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset操作的主要内容,如果未能解决你的问题,请参考以下文章

C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白

C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset类型

C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式

C++ Primer 5th笔记(chap 17 标准库特殊设施)tuple 返回多个值

C++ Primer 5th笔记(chap 17 标准库特殊设施)控制输入格式

C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset操作