zoukankan      html  css  js  c++  java
  • ACM的奇计淫巧_bitset优化

    什么是bitset

    bitset 是STL库中的二进制容器,根据C++ reference 的说法,bitset可以看作bool数组,但优化了空间复杂度和时间复杂度,并且可以像整形一样按位与或。

    使用方法

    申明

    bitset的申明要指明长度

    bitset<length> bi
    

    这样就申明了一个长度为length的名叫bi的bitset

     赋值

    bitset重载了[]运算符,故可以像bool数组那样赋值

    bi[2] = 1;

    这样就能将第二位赋值为1

    常用函数

    b1 = b2 & b3;//按位与
    b1 = b2 | b3;//按位或
    b1 = b2 ^ b3;//按位异或
    b1 = ~b2;//按位补
    b1 = b2 << 3;//移位
    int one = b1.count();//统计1的个数

    优化作用

    常常碰到处理的数组只有0和1的变化,此时就可以使用bitset优化。比如求两个集合的交集可以使用按位与运算,求并集可以使用按位或运算

  • 相关阅读:
    【Python爬虫】:模拟登录QQ空间
    Docker
    Git
    DevOps
    DevOps
    gRPC 简介
    tcpdump的使用
    Raft
    go-micro 简介
    Node
  • 原文地址:https://www.cnblogs.com/HarryGuo2012/p/4712245.html
Copyright © 2011-2022 走看看