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 返回多个值