作者: 李云鹏(qqliyunpeng@sina.cn)
版本号: 20170106
更新时间: <2017-01-09>
原创时间: <2017-01-06>
版权: 本文采用以下协议进行授权, 自由转载 - 非商用 - 非衍生 - 保持署名 | Creative Commons BY-NC-ND 3.0,转载请注明作者及出处.
更新时间: <2017-01-09>
原创时间: <2017-01-06>
版权: 本文采用以下协议进行授权, 自由转载 - 非商用 - 非衍生 - 保持署名 | Creative Commons BY-NC-ND 3.0,转载请注明作者及出处.
1. 简介:
对bitset了解后其意义相当于bitmap,如果你不知道bitmap,那需要我解释下,bitset正如他的翻译,是一些bit的集合,他是对bit进行操作的封装,其中操作包括但不限于:将某一位(或者全部位)置1(set)、将某一位(或者全部位)清零(reset)、将某一位(或者全部位)取反(flip)、测试某一位是不是1(test),使用他的意义在于可以表征有两种可能的事件的状态。他没有位数的限制。
2. 函数:
这些函数比较简单,具体有哪些含义,直接跳转到 这里
3. 程序测试:
#include <iostream>
#include <string>
#include <bitset>
using namespace std;
int main(int argc, const char *argv[])
{
bitset<10> bitmap;
bitmap.set(7); // 置位第7位(从0位开始)
bitmap.set(9);
cout << "bitmap : " << bitmap << endl;
cout << "bitmap[7] : " << bitmap[7] << endl;
cout << "bitmap.count(): " << bitmap.count() << endl; // 有几个置位了
cout << "bitmap.size() : " << bitmap.size() << endl; // 一共包含几位
cout << "bitmap.test(7): " << bitmap.test(7) << endl;
cout << "bitmap.test(8): " << bitmap.test(8) << endl;
return 0;
}
程序的结果如下:
【1】从图中可以看到,打印的二进制从右边开始数
【2】如果想将全部set中的位都清零只需要 bitmap.reset() 即可