最近用的bitset比较多,位运算在存储状态、模拟行动、搜索很多方面有着非常巨大的优势,所以特意转了一篇bitset的基本用法。

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

构造函数
bitset<n> b;
 b有n位,每位都为0.参数n可以为一个表达式.
如bitset<5> b0;则"b0"为"00000";
 
bitset<n> b(unsigned long u);
 b有n位,并用u赋值;如果u超过n位,则顶端被截除
如:bitset<5>b0(5);则"b0"为"00101";
 
bitset<n> b(string s);
 b是string对象s中含有的位串的副本
string bitval ( "10011" );
bitset<5> b0 ( bitval4 );
则"b0"为"10011";

bitset<n> b(s, pos);
 b是s中从位置pos开始位的副本,前面的多余位自动填充0;
string bitval ("01011010");
bitset<10> b0 ( bitval5, 3 );
则"b0" 为 "0000011010";
 
bitset<n> b(s, pos, num);
 b是s中从位置pos开始的num个位的副本,如果num<n,则前面的空位自动填充0;
string bitval ("11110011011");
bitset<6> b0 ( bitval5, 3, 6 );
则"b0" 为 "100110";

os << b
 把b中的位集输出到os流
os >>b
输入到b中,如"cin>>b",如果输入的不是0或1的字符,只取该字符前面的二进制位.

bool any( ) 
 是否存在置为1的二进制位?和none()相反
 
bool none( ) 
是否不存在置为1的二进制位,即全部为0?和any()相反.
 
size_t count( )
二进制位为1的个数.
 
size_t size( )
 二进制位的个数

flip()
 把所有二进制位逐位取反
 
flip(size_t pos)
 把在pos处的二进制位取反
 
bool operator[](   size_type _Pos )
 获取在pos处的二进制位
 
set()
 把所有二进制位都置为1
 
set(pos)
 把在pos处的二进制位置为1
 
reset()
 把所有二进制位都置为0
 
reset(pos)
 把在pos处的二进制位置为0

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

unsigned long to_ulong( )
 用同样的二进制位返回一个unsigned long值

string to_string ()
返回对应的字符串.

C++/STL Bitset (转)相关推荐

  1. STL - bitset

    STL - bitset 小结 声明: #include <bitset> using std::bitset; 申请对象以及初始化: bitset<n> b; b有n位,每位 ...

  2. STL bitset用法总结

    c++ bitset类用法:http://blog.csdn.net/qll125596718/article/details/6901935 C++ 参考:http://www.cplusplus. ...

  3. C++ STL bitset类常用函数的使用

    bitset创造一个内含位或布尔值且大小固定的数组(array).当需要管理各种标识,并需要以标识的任意组合表现变量时,即可使用bitset模板类. 接下来介绍基本函数的用法: count()     ...

  4. STL bitset用法小结(详细)附蓝桥杯题:明码

    bitset用法小结 使用bitset类型需引入头文件 #include< bitset > 它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间. bitset类 ...

  5. 标准非STL容器 : bitset

    1. 概念 什么是"标准非STL容器"?标准非STL容器是指"可以认为它们是容器,但是他们并不满足STL容器的所有要求".前文提到的容器适配器stack.que ...

  6. 程序 算法与数据结构

    B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构.使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度.按照翻译,B 通常认为是Balance的简称.这个数据结构一 ...

  7. AcWing 164. 可达性统计

    给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量. 输入格式 第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边. 输出格式 输出共N行,表示每个点能 ...

  8. C++学习系列笔记(八)

    1.STL映射类 STL map和multimap的内部结构看起来像棵二叉树.这意味着在map或multimap中插入元素时将进行排序.要使用STL map或multimap类,需要包含头文件< ...

  9. C++——输入、输出和文件

    转载自:http://www.cnblogs.com/mupiaomiao/p/4730757.html 一.C++输入和输出概述 1.1.流和缓冲区 C++程序把输入和输出看作字节流.输入时,程序从 ...

最新文章

  1. PHP--isset()和unset()函数的用法
  2. 【怎样写代码】偷窥高手 -- 反射技术(二):窥视内部
  3. VUE的本地应用-V- show
  4. [转]DPM2012系列之十:备份exchange2010数据库
  5. 如何制作在线参考手册
  6. 斯洛文尼亚接受BCH支付的商家达343家,日本和北昆士兰州对BCH接受度增长迅速
  7. 2010 ACM/ICPC Online-Contest-SCU[四川赛区网络预选赛]
  8. hibernate的Transaction接口理解
  9. Android(一)——Eclipse+ADT 和 Android Studio 开发环境搭建及介绍
  10. 【Thymeleaf】格式化日期
  11. android studio moudel,Android Studio 添加其他目录下的module
  12. linux磁盘写保护怎么修改_linux系统怎么避免u盘被写保护
  13. 带宽检测工具iftop
  14. 双目视觉图像的色彩调整
  15. 软件研发管理体系建设
  16. Apache的Rewrite知识点梳理(mod_rewrite、RewriteCond、RewriteRule)
  17. Zion无代码赋能企业中台构建
  18. MACD金叉启动副图/选股指标 通达信 源码 有未来
  19. 手机视频性能测试软件,手机看视频拒绝卡顿!三款常见加速软件对比实测
  20. NFS共享存储服务介绍与案例详细配置过程

热门文章

  1. 【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )
  2. 【软件工程】CMMI 能力成熟度模型集成 ( CMMI 过程管理过程域 | CMMI 项目管理过程域 ) ★
  3. 【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA )
  4. 【Android 系统开发】Android框架 与 源码结构
  5. 新技能get!判断盒子的实际大小及位置。。。
  6. WPF实现Windows资源管理器(附源码)
  7. 集合类-HashSet去重
  8. [web 安全] php随机数安全问题
  9. Thread 小总结
  10. linux系统命令基础知识