c++ 学习之:bitset

作者: 李云鹏(qqliyunpeng@sina.cn)
版本号: 20170106
更新时间: <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() 即可


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值