zoukankan      html  css  js  c++  java
  • C++ bitset用法

    概念:

      bitset 是用来存储位的(其中的元素只有两种形式)

      这个类通常用来模拟一个布尔数组,但对空间分配上进行了优化:通常,每个元素只占用一个 bit ,而通常 char 类型是它的八倍

      每个位置上的位都可以被单独访问:例如,对于一个给定的名为 foo 的 bitset,foo[3] 表示访问 foo 的第四位,就像常规的数组访问它的元素一样。但是因为在大多的

      c++ 环境中,没有元素类型是单个位的,所以单独的元素作为特殊的引用类型来访问

      bitset 具有构建并转换为int和二进制字符串的功能,它也可以由 int 和 bool 数组转化得来

      bitset 的大小在编译的时候就需要确定下来,如果不定长,可用 vector<int>

      *用 bitset 需要 #include<bitset>

    常用函数:(bitset 从 0 开始算下标,同数组)

           size() 返回 bitset 的大小(位数)

      count() 返回 bitset 中1的个数

      all()返回bitset是否全为 1 (C++11)

      any() 返回 bitset 中是否有 1

      none() 返回 bitset 中是否没有 1

      set() 将 bitset 的位全置为 1

      set(pos) 将 bitset 的第 pos 位置为 1

      set(pos, x) 将 bitset 的第 pos 位置为 x

      reset() 将 bitset 的位全部置为 0

           reset(pos) 将第 pos 位置为 0

           flip() 将 bitset 的位全部取反

           flip(pos) 将bitset的第 pos 位取反

      test(pos) 返回第 pos 位(0 / 1) (最好不要用方括号 [] ,容易GG (反正我 GG 好几次))

           to_string() 返回值为将将当前 bitset 转换为 string 的结果

           to_ulong() 返回值为将当前 bitset 转换为 unsigned long 的结果

        (如果爆了 unsigned long 数据范围,会RE…)

    禁止诸如开发者知识库/布布扣/码迷/学步园/马开东等 copy 他人博文乃至博客的网站转载 ,用户转载请注明出处:https://www.cnblogs.com/xcysblog/
  • 相关阅读:
    1分钟去除word文档编辑限制密码
    建行信用卡微信查询
    明目地黄丸
    发动机启停技术
    ORA-12170: TNS: 连接超时
    螃蟹放进冰箱冷冻保存前,要注意什么呢?
    螃 蟹要蒸多久
    总胆固醇偏高的注意措施及治疗方法
    codeforces 375D . Tree and Queries 启发式合并 || dfs序+莫队
    codeforces 374D. Inna and Sequence 线段树
  • 原文地址:https://www.cnblogs.com/xcysblog/p/8583206.html
Copyright © 2011-2022 走看看