【stl_ bitset 】数据结构,状态压缩,

一,bitset容器

首先我们要知道bitset 这种容器的存储方法,这个数据结构本质上就像一个bool类型的字符串,但是可以直接当作一个数进行左移右移,取或取反等二进制操作,对这些数进行一个模拟操作,可以对所有的数进行一个统一的操作。
在这里插入图片描述

二,容器的使用

1, 容器的创建

bitset 类型开始的时候要初始化数组中的位数,并且数组中都是0 ,所以我们在创建的时候使用的参数是size参数

1, 创建一个空的bitset容器

#include <iostream>
#include <bitset>
using namespace std ;
int main ()
	{
    
     
		
	bitset <18> name ;
	cout << name << endl ;
	return 0 ;
}

下面的赋值都是,过长截断,过短补零
2,创建一个十进制数的bitset容器


	bitset <18> name(34) ;
	

3,创建一个字符串和字符数组容器

string s = "0101100101010" ;

bitset <16> bi(s) ;  
cout << b2 << endl;
char s[10] = {
    
    '1' ,'0' ,'1' ,'1','1','0','0'....};
bitset <16> bi(s) ;
cout << b2 << endl ;

2, 容器的常见的运算

b2 |= b3; //两个二进制数取或操作;
//常用 
b2 &= b3; //两个二进制数取与操作;
//常用 
b2 ^= b3; //取异或; 
b2 << 2; //左移右移;

3. 常用的函数

查询函数,查询1的个数

cout << q.count() << endl ;

查询数组长度

cout << s.size() << endl ;

重新建立字符串

q.reset() ;

4,数组特性

可以跟数组一样的使用下标调用数值 。


猜你喜欢

转载自blog.csdn.net/wen030803/article/details/131991934