zoukankan      html  css  js  c++  java
  • 模板类-bitset


    • stl提供了std::bitset模板类,定义:bitset <32> bitvec;尖括号中的为长度,这条语句把bitvec定义为含有32个的bitset对象。和容器一样,按位置来访问他们,其位置编号从零开始
    • 初始化bitset对象的方法: 1、bitset<n> b; b有n位,每位都为0 2、bitset<n> b(u); b是unsigned long型u的一个副本 4、bitset<n> b(s, pos, n); b是s中从位置pos开始的n个位的副本, 相当于b是从s中pos位置开始截取n位
    • bitset操作: b.any() b中是否存在为1 b.count() 统计位为1的个数 b.test(pos) 测试b中pos位处是否为1 b.set() 把b中所有位都置为1 b.reset() 所有位都置为0 b.flip() 把b中所有二进制位取反 b.flip(pos) pos处取反 b.to_ulong() 将此二进制转换为一个unsigned long类型值
      #include <bits/stdc++.h>
      using namespace std;
      
      int main() {
      	bitset<3> bs;
      	bs[0] = 1, bs[1] = 1, bs[2] = 1;
      
      	if (bs.any() == 1)	cout << "存在1的位" << endl;
      	else	cout << "不存在为1的位" << endl;
      	cout << "1的个数为"<< bs.count() << endl; 
      	bs.set();
      	cout << "1的个数为"<< bs.count() << endl; 
      	unsigned long value = bs.to_ulong();
      	cout << value << endl;
      	bs.reset();
      	cout << "1的个数为"<< bs.count() << endl; 
      	return 0;
      } 

  • 相关阅读:
    创建一个catkin工作空间
    Ubuntu下安装Python3.4及用python编译py文件
    ubuntu连接kinect v2
    ubuntu循环登录问题的解决
    找到bashrc
    创建一个catkin工作空间
    ts配置
    几个loader源码
    e2e测试
    eslint配置
  • 原文地址:https://www.cnblogs.com/Tovi/p/6194770.html
Copyright © 2011-2022 走看看