首页 > 其他 > 详细

STL— bitset

时间:2020-03-31 17:35:34      阅读:60      评论:0      收藏:0      [点我收藏+]

转自:https://www.cnblogs.com/xenny/p/9549002.html

 

一,概述

C++的 bitset 在 <bitset> 头文件中,

它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间

 

二,初始化

可以用以下几种方式定义bitset,值得注意的是,bitset在定义的时候必须定义大小,这里8便是我们定义的长度,定义一个空 bitset 时所有值默认为 0

技术分享图片
        bitset<8> b;         // 00000000
    bitset<8> bit(8);    // 00010000
    bitset<8> tp1(string("01010101"));  // 10101010
    bitset<8> tp2(bit);  // 00010000

    cout << "  b = " << b << endl;
    cout << "bit = " << bit << endl;
    cout << "tp1 = " << tp1 << endl;
    cout << "tp2 = " << tp2 << endl;        
View Code

① 其中,打印出来的顺序和实际顺序是反的(不太知道为什么)

②  bit(8),就是把 bit(2的3次方),让下标为 3 的位置为 1.

③ 用字符串的话,实际的数值应该 和字符串 是反过来的

 

三,函数

 bit.size();        //返回大小(长度)
    bit.count();    //返回1的个数
    bit.any();        //返回是否有1
    bit.none();        //返回是否没有1
    bit.set();        //全部置为1
    bit.set(p);        //将p+1(下标从0开始!!)位置为1
    bit.set(p,n);    //将p+1位置为n
    bit.reset();    //全部置为0
    bit.reset(p);    //将p+1位置为0
    bit.flip();        //全部取反 等同于 (~bit)
    bit.flip(p);    //将p+1位取反
    bit.to_ulong();    //返回转换为 unsigned long  的结果,超范围会报错
    bit.to_ullong();//返回转换为 unsigned long long 的结果,超范围报错
    bit.to_string();//返回转换为 string 的结果

 

 

 

========== ========= ======== ====== ===== ==== === == =

 

STL— bitset

原文:https://www.cnblogs.com/asdfknjhu/p/12606329.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!