STL容器之bitset

STL容器之bitset

简单介绍

bitset,通常用来存储的数据是二进制,所以后面涉及一些位运算或者是二进制的时候,使用bitset容器会比较方便。

使用的时候,仍然需要包含bitset的头文件

使用

bitset的容器的创建跟其他容器有点区别
<位数>, 其他容器中<>,写的是数据类型
注意: 在bitset容器中这里写的是位数

一般情况,类型传字符串就行

#include<iostream>
#include<bitset>
#include<string>

using namespace std;

int main()
{
	bitset<2> bi("11");  // 2 代表位数, 一般可传字符串类型
	cout << bi << endl;

	bitset<4> bit("11"); 
	cout << bit << endl; //如果位数不够,用0补齐(在前面补齐)


	cout << bit.flip() << endl;  // 全部取反 按位取反, 0变成1, 1变成0
	cout << bit.flip(0) << endl;  //将 0 + 1 位取反 
	cout << bit.all() << endl;    //返回是否有0
	cout << bit.any() << endl;   //返回是否有1
	cout << bit.none() << endl;  //返回是否没有1
	cout << bit.count() << endl; //计算1的个数

	return 0; 
}

>当然 bitset容器,支持所有的位运算,用bitset会让你的算法复杂度,下降很多,一般可以使用于优化奇偶性相关的问题,或者判断联通性之类的,(也可以在搜索的时候,优化访问标记)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温柔了岁月.c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值