Cplusplus官网的资料:

http://www.cplusplus.com/reference/bitset/bitset/

http://www.cplusplus.com/reference/bitset/bitset/bitset/

bitset作为STL中一个位集,主要在涉及二进制位存储,操作时比较方便。

定义及基本操作:

bitset<n> b,定义一个包含n个二进制位的变量。

可以通过unsigned 值或string类型来初始化,如:

bitset<32> b(0xFFFF),表示将前16位初始化为1,后16位初始化为0;

string str = "1111111111111111";

bitset<32> b(str),作用同上,注意利用字符串初始化时,首先从字符串右端读入,并将其作为低位的值,

string str = "011";

bitset<32> b(str), 最低位开始依次为1, 1, 0,且长度不足时高位补0, 超过b的长度时,将字符串左端丢弃。

还可以指定字符串开始赋值的位置,和赋值长度。

string str = "10111";

bitset<5> b(str, 2, 3);

将字符串左端开始的第2个字符(最左端为第0个), 长度为3的字符串赋值给b,不足时,这里b的高位补0了。

b此时相当字符串”00111“。

常用转化函数:

to_ulong ();返回二进制串表示的unsigned long值;

to_string();返回string值。

应当特别注意的是,将b输出时,不论是以相应整数,还是相应字符串输出时,低位都应该在输出位置的右端,

string str = "011";

bitset<5> b(str);

cout<<b<<endl;

cout<<b.to_string();

上述输出为:

00011

00011

常用成员函数:

any()             是否存在位置为1的二进制位

none()          不存在置为1的二进制位?

count()         置为1的二进制位的个数

size()            总的二进制位的个数

[pos]            访问在pos处的二进制位

test(pos)     pos处的二进制位是否为1

set()             所有位都置1

set(pos)              pos处的二进制置1

reset()         所有二进制置0

reset(pos)   pos处的二进制位置0

flip()             所有位置反

flip(pos)              pos位置反

to_ulong()   返回一个 unsigned long 值

os<<b           位集输出到os流

好了终于弄明白了。

bitset学习小记的更多相关文章

  1. mongodb入门学习小记

    Mongodb 简单入门(个人学习小记) 1.安装并注册成服务:(示例) E:\DevTools\mongodb3.2.6\bin>mongod.exe --bind_ip 127.0.0.1 ...

  2. javascript学习小记(一)

    大四了,课少了许多,突然之间就不知道学什么啦.整天在宿舍混着日子,很想学习就是感觉没有一点头绪,昨天看了电影激战.这种纠结的情绪让我都有点喘不上气啦!一点要找点事情干了,所以决定找个东西开始学习.那就 ...

  3. js 正则学习小记之匹配字符串

    原文:js 正则学习小记之匹配字符串 今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高 ...

  4. js 正则学习小记之左最长规则

    原文:js 正则学习小记之左最长规则 昨天我在判断正则引擎用到的方法是用 /nfa|nfa not/ 去匹配 "nfa not",得到的结果是 'nfa'.其实我们的本意是想得到整 ...

  5. js 正则学习小记之NFA引擎

    原文:js 正则学习小记之NFA引擎 之前一直认为自己正则还不错,在看 次碳酸钴,Barret Lee 等大神都把正则玩的出神入化后发现我只是个战五渣.  求抱大腿,求大神调教. 之前大致有个印象,正 ...

  6. js 正则学习小记之匹配字符串优化篇

    原文:js 正则学习小记之匹配字符串优化篇 昨天在<js 正则学习小记之匹配字符串>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯 ...

  7. CSS学习小记

    搜狗主页页面CSS学习小记 1.边框的处理   要形成上图所示的布局效果,即,点选后,导航下面的边框不显示而其他的边框形成平滑的形状.相对于把导航的下面边框取消然后用空白覆盖掉下面搜索栏的边框比较而言 ...

  8. Gcd&Exgcd算法学习小记

    Preface 对于许多数论问题,都需要涉及到Gcd,求解Gcd,常常使用欧几里得算法,以前也只是背下来,没有真正了解并证明过. 对于许多求解问题,可以列出贝祖方程:ax+by=Gcd(a,b),用E ...

  9. logstash 学习小记

    logstash 学习小记 标签(空格分隔): 日志收集 Introduce Logstash is a tool for managing events and logs. You can use ...

随机推荐

  1. Activiti源码分析(框架、核心类。。。)

    http://jiangwenfeng762.iteye.com/blog/1338553 Activiti是业界很流行的java工作流引擎,关于Activiti与JBPM5的关系和如何选择不是本文要 ...

  2. js 获取url中的查询字符串

    function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)( ...

  3. ViewState原理

    1.IsPostBack原理 1.1 所有的服务端控件,都必须放在runat="server"的表单里面,runat="server"的表单会生成__VIEWS ...

  4. SQL Server 可疑的解决办法

    SQL SERVER 数据库状态为“可疑”的解决方法 --MyDB为修复的数据名 USE MASTER GO SP_CONFIGURE RECONFIGURE WITH OVERRIDE GO ALT ...

  5. 使用FreeMarker生成静态HTML

    1.FreeMarker需要添加的Maven依赖: <dependency> <groupId>org.freemarker</groupId> <artif ...

  6. poj代码搬家啦啦啦

    我的poj代码搬家啦,大家想看可以到 blog.csdn.net/michaelysm 来看.欢迎哦

  7. ifstream:incomplete type is not allowed

    IntelliSense: incomplete type is not allowed ifstream inputFile; Need to add this: #include <fstr ...

  8. VS2010 error RC2135: file not found

    VS2010 C++ win32 DLL 工程, 添加 rc 文件, 编辑 String Table. 默认情况下英文版本的 rc 文件能够顺序编译通过,为了让工程支持多语言,将字符串修改为其他语言时 ...

  9. STL的简介

    Standard Template Library,(标准模板库)<来自百度百科的整理> ————可复用性(reusability) STL是基于模板,内联函数的使用使得生成的代码短小高效 ...

  10. Unable to make the session state request to the session state server处理方法

    Server Error in '/' Application. Unable to make the session state request to the session state serve ...