C++ bitset类的使用与简介

来源:互联网 发布:算法分析的目的是 编辑:程序博客网 时间:2024/06/08 06:18

介绍:
有些程序需要处理二进制有序集,标准库提供了bitset 类型,事实上,bitset 是一个二进制容器,容器中每一个元素都是一位二进制码,或为 0,或为 1。

使用:

#include <bitset>using std::bitset;

1.定义与初始化
在定义 bitset 时,要明确 bitset 有多少位,这个位数是整形常量

bitset<n> b;    //b 有 n 位,每位都是 0bitset<n> b(u); //b 是 unsigned long(int) 型 u 的一个副本bitset<n> b(s); //b 是 string 对象 s 中含有的位串的副本,这个s 必须是位串,也就是二进制码串bitset<n> b(s, pos, n); //b 是 s 中 从位置 pos 开始的 n 个位的副本

2.bitset 的操作

b.any()           //b 中是否存在置为 1 的二进制位? b.none()          // 和b.any() 效果一样b.count()         //b 中不存在置为 1 的二进制位吗? b.size()          //b 中置为 1 的二进制位的个数 b[pos]            //访问 b 中在 pos 处二进制位 b.test(pos)       //b 中在 pos 处的二进制位置为 1 b.set()           //把 b 中所有二进制位都置为 1b.set(pos)        //把 b 中在 pos 处的二进制位置为 1 b.reset()         //把 b 中所有二进制位都置为 0 b.reset(pos)      //把 b 中在 pos 处的二进制位置为 0 b.flip()          //把 b 中所有二进制位逐位取反 b.flip(pos)       //把 b 中在 pos 处的二进制位取反 b.to_ulong()      //用 b 中同样的二进制位返回一个 unsigned long 值 os << b           //把 b 中的位集输出到 os 流

示例:

cout<<b<<endl;
0 0
原创粉丝点击