• 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/
  • 相关阅读:
    人们常说的带宽是什么意思?
    关注前端性能
    单测学习笔记
    基于 Istanbul 生成测试用例覆盖率报告
    如何做高水科研
    Human-like Controllable Image Captioning with Verb-specific Semantic Roles(具有动词语义角色的类人可控图像字幕生成)
    Netty应用程序的全部基本构建模块_netty学习笔记(2)-20210405
    异步和事件驱动_netty学习笔记(1)-20210330
    理解 cosocket(转)
    nginx lua阶段处理流程
  • 原文地址:https://www.cnblogs.com/xcysblog/p/8583206.html
Copyright © 2020-2023  润新知