「STL」bitset正传
前言
之前一些需要转二进制来解决的题目我看到很多大佬用了bitset。
然而我并不会这东西。看上去很高级的样子……
改题改累了来学习一下233。
正文
一、bitset的构造
bitset有三种构造方式:string构造、整数构造和无参构造(自己瞎yy的名字)
1.无参构造:默认每一位为0。
具体代码实现:
bitset <> a;
构造结果:0000000000
2.string构造:与char数组构造大致相同。也是附上一个01串作为bitset构造的参量传入。
具体代码实现:
string str="";
bitset <> b(str);
构造结果:0000010110
3.整数构造:传入一个整数,bitset会自动转化成二进制数保存。
具体代码实现:
bitset <> c();
构造结果:0000001100
二、bitset的基本运算
bitset支持所有的位运算。在这里不一一进行演示。举一个异或的例子:
具体代码实现:
bitset <> a(string(""));
bitset <> b(string(""));
cout<<(a^b)<<endl;
输出结果:00000000000000000001
三、bitset的访问和赋值
1.bitset可以通过"[""]"来访问每一位的值。
具体代码实现:
bitset <> a("");
cout<<a[]<< endl;//输出
通过这一方法也可以对某一个位置进行赋值。
2.通过bitset自带函数test进行访问(据说和上面的访问方式比可以避免访问越界问题)
具体代码实现:
bitset <> a("");
cout<<a.test()<<endl;
3.通过bitset自带函数set、reset进行赋值
set无参时将所有位全部置成1,reset相反。参数为位置。加入参数会将对应的位置+1置成0/1。
另外,当set函数指定两位参数时,意义为将第一参数位+1的元素置为第二参数的值。
具体代码实现:
bitset <> a;
a.set(); //
a.reset(); //
a.set(); //
a.set(); //
a.reset(); //
a.set(,); //
并没有实测不过大概是这样吧……(逃
四、其他基本函数
count():返回1的个数
any():返回是否有1
none():返回是否没有1
flip():全部取反
flip(p):将第p+1位取反
to_ulong():返回它转换为unsigned int的结果,如果超出范围则报错
to_ullong():返回它转换为unsigned long long的结果,如果超出范围则报错
to_string():返回它转换为string的结果
「STL」bitset正传的更多相关文章
- 「C++」理解智能指针
维基百科上面对于「智能指针」是这样描述的: 智能指针(英语:Smart pointer)是一种抽象的数据类型.在程序设计中,它通常是经由类型模板(class template)来实做,借由模板(tem ...
- 一个只需要点 「下一步」就完成监控 Windows
Cloud Insight 此前已然支持 Linux 操作系统,支持20多中数据库中间件等组件,多种操作,多种搭配,服务器监控玩的其乐无穷啊!但想想还有许多 Windows 的小伙伴没有体验过,所以在 ...
- LOJ #2135. 「ZJOI2015」幻想乡战略游戏(点分树)
题意 给你一颗 \(n\) 个点的树,每个点的度数不超过 \(20\) ,有 \(q\) 次修改点权的操作. 需要动态维护带权重心,也就是找到一个点 \(v\) 使得 \(\displaystyle ...
- LOJ #6436. 「PKUSC2018」神仙的游戏(字符串+NTT)
题面 LOJ #6436. 「PKUSC2018」神仙的游戏 题解 参考 yyb 的口中的长郡最强选手 租酥雨大佬的博客 ... 一开始以为 通配符匹配 就是类似于 BZOJ 4259: 残缺的字符串 ...
- LOJ #2135. 「ZJOI2015」幻想乡战略游戏
#2135. 「ZJOI2015」幻想乡战略游戏 链接 分析: 动态点分治,求加权重心,带修改. 考虑如果知道了一个点s,如何求答案,那么首先可以点分治的思想,求每个联通块内所有点到分治中心距离和,然 ...
- tyvj P2018 「Nescafé26」小猫爬山 解题报告
P2018 「Nescafé26」小猫爬山 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经 ...
- 「BZOJ4763」雪辉
「BZOJ4763」天野雪辉 题目大意:有一棵 \(n\) 个点的树,树上每一个点有权值 \(a_i \leq 30000\) ,每次询问给出若干路径,求出这些路径的并上面的不同颜色数与 \(mex\ ...
- 「CSA49」Card Collecting Game
「CSA49」Card Collecting Game 题目大意:有 \(n\) 种卡片,每种有 \(b_i\) 张,如果一个人集齐 \(k\) 张第 \(i\) 种卡片,那么其能获得的得分是 \(\ ...
- loj #6201. 「YNOI2016」掉进兔子洞
#6201. 「YNOI2016」掉进兔子洞 您正在打galgame,然后突然发现您今天太颓了,于是想写个数据结构题练练手: 给出一个长为 nnn 的序列 aaa. 有 mmm 个询问,每次询问三个区 ...
随机推荐
- plsql连接问题
PLsql好久没用了,今天想用的时候,发现自己忘记本地实例(system)的密码了,试了几个自己常用的密码都不对,提示“ORA-01017:invalid username/password;logo ...
- MJExtension常用方法
一.MJExtension第三方框架 我们在iOS开发过程中,我们常常需要将字典数据(也就是JSON数据)与Model模型之间的转化,例如网络请求返回的微博数据.等等,如果我们自己全部手动去创建模型并 ...
- 结对编程-Core 第12组 [pb15061359+pb15061351]
一.项目要求 1.输入题目数量,生成操作数为3~5个的四则运算题目 2.输入上限值控制生成的操作数的最大值以及结果的最大值 3.输入支持的操作符类型:加.减.乘.除.乘方.括号 4.输入支持的操作数类 ...
- tzfile - 时区信息
SYNOPSIS #include <tzfile.h> DESCRIPTION 时区信息文件被 tzset(3) 使用, 其开头为特征字符"TZif", 以此标示该文 ...
- Oracle之数据类型问题
做项目涉及到Oracle数据库中数据类型:字符串型的问题 我不太清楚varchar(32)到底代表着什么? 通过搜索了解到:oracle中有三种常用的类型:varchar2(byte),varchar ...
- php上传(二)
上传的主体页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- 小程序生成海报:通过 json 配置方式轻松制作一张海报图
背景 由于我们无法将小程序直接分享到朋友圈,但分享到朋友圈的需求又很多,业界目前的做法是利用小程序的 Canvas 功能生成一张带有二维码的图片,然后引导用户下载图片到本地后再分享到朋友圈.而小程序 ...
- 单调栈(最大子矩形强化版)——牛客多校第八场A
求01矩阵里有多少个不同的1矩阵 首先预处理出pre[i][j]表示i上面连续的1个数,对每行的高度进行单调栈处理 栈里的元素维护两个值:pre[i][j]和向前延伸最多能维护的位置pos 然后算贡献 ...
- phpstorm激活 破解 方法
1.license server 在线激活方式 不是很推荐,自己有服务器的话可以考虑搭建 所以就不说了. 不过我在网上找了一些地址,可以用一下,不保证长期有效 http://idea.goxz.gq ...
- nginx、php-fpm安装mongodb及驱动扩展
1.安装mongodb linux下安装mongodb很简单,执行如下命令完成安装 wget http://downloads.mongodb.org/linux/mongodb-linux-i686 ...