C++ Primer学习笔记2--c++标准库中的 vector、string 和 bitset 类型(二)

2014-11-23 22:08:38 ? 作者: ? 浏览: 6
r + n;
iter1-iter2 defference_type
三.bitset
#include
using std::bitset;
初始化
bitset b; // b 有 n 位,每位都 0 bitset<32> b;
bitset b(u);// b 是 unsigned long 型 u 的一个副本 bitset<32> b(0xffff);
// bits 0 ... 15 are set to 1, 16 ... 31 are 0
bitset b(s); // b 是 string 对象 s 中含有的位串的副本
string strval("1100");
bitset<32> bitvec4(strval);//从 string 对象读入位集的顺序是从右向左(from right to left):bitvec4 的位模式中第 2 和 3 的位置为 1,其余位置都为 0。如果 string 对 象的字符个数小于 bitset 类型的长度,则高阶位置为 0。
bitset b(s, pos, n);// b 是 s 中从位置 pos 开始的&nbps;n 个位的副
string str("1111111000000011001101");
bitset<32> bitvec5(str, 5, 4); // 4 bits starting at str[5], 1100
位操作
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.reset() 把所有二进制位设为0
b.set(pos) 把 b 中在 pos 处的二进制位置为 1
flip 操作可以对 bitset 对象的所有位或个别位取反:
bitvec.flip(0); // reverses value of first bit
bitvec[0].flip(); // also reverses the first bit
bitvec.flip(); // reverses value of all bits
-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: