您的位置:首页 > 编程语言 > C语言/C++

C++ Primer 读书笔记 – 第三章

2010-06-25 09:40 197 查看
 第3章 标准库类型

⒊⒌ 标准库bitset类型
[以下下标和位数均为 size_t 型(定义在头文件 cstddef 中,
unsigned 整型)]


⒈ bitset 是一种类模板,用于保存位集,并提供测位和置位操作

⒉ 定义和初始化

bitset 在定义时需要以常量表达式的形式提供位数N

初始化时参数提供位数不足则剩余高阶位置为0,位数过多则抛弃多余高阶位

⑴ bitset<N> b;

默认构造函数置各位为0

⑵ bitset<N> b( unsigned
long u );

使用 unsigned
long 值u的二进制形式初始化

⑶ bitset<N> b( string s, size_t pos=0 );

bitset<N> b( string s, size_t pos,
size_t m );

使用 string 对象s或其(下标pos起到结尾或长度为m的)子串初始化

(子)串最右端对应低阶(low-order)位,向左依次类推

⒊ 操作

除支持所有内置位运算符以及==和!=外,还支持以下操作:

⑴ 访问整个 bitset 对象

bool any();

返回是否各位不全为0

bool none();

返回是否各位全为0

size_t count();

返回为1的位的个数

size_t size();

返回能容纳的位数

⑵ 访问 bitset 对象中的位

(从低阶位起,各位编号依次为 0,
1, 2, 3 …)

① 下标操作符[]返回指定位的引用

bool test(
size_t pos );

返回指定位的值

③ bitset<N>& set( size_t pos,
int val=1 );

设定指定位的值并返回对象的引用

④ bitset<N>& reset( size_t pos );

清零指定位并返回对象的引用

⑤ bitset<N>& flip( size_t pos );

取反特定位并返回对象的引用

也可以b[pos].flip(),返回指定位的引用

⑶ 设置整个 bitset 对象

① bitset<N>& set();

置所有位为1并返回对象的引用

② bitset<N>& reset();

清零所有位并返回对象的引用

③ bitset<N>& flip();

取反所有位并返回对象的引用

⑷ 获取 bitset 对象的值

unsigned
long to_ulong();

返回位模式相同的 unsigned
long

若越界则产生运行时异常

② string to_string();

返回字符串形式

③ 可使用输出操作符打印 bitset 对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: