• 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优化。比如求两个集合的交集可以使用按位与运算,求并集可以使用按位或运算

  • 相关阅读:
    nodejs ---day01
    面向对象
    面向对象
    面向对象
    webpack
    webpack
    webpack
    模块化 (ESM) --- day02
    模块化 --- day01
    轮播图(淡入淡出切换)
  • 原文地址:https://www.cnblogs.com/HarryGuo2012/p/4712245.html
Copyright © 2020-2023  润新知