gpt4 book ai didi

c++ bitset详解

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 34 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章c++ bitset详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

bitset

使用bitset需要添加头文件bitset ,bitset是一种特殊的容器 ,bitset数组中 ,每个成员只装1bit位的数据 , 即只能是0 或 1.

bitset 的基本用法 :

初始化bitset容器 。

bitset<‘size'> 容器名;未初始化容器数据,会默认每位都是0 。

也可以给一个具体的初始化:存入int数据 。

bitset<‘size'> 容器名(‘num'); 。

会将num以二进制形式储存在bitset中,如果初始化的容器位数不够 ,会截取num二进制形式下的左边部分,如果bitset容器过大,会把多于的位用0填充; 。

也可以初始化装入只含0和1的字符串:

biset<‘size'> 容器名('str‘);注 若str中含除0 1 外的字符会报错 。

容器会将str原样储存在每一位中,若容器过小会优先储存str的左边部分,过大则用0补足 。

代码示例:

?
1
2
3
4
5
6
7
8
9
bitset<10> a; //每个成员只能装0 或1 ,默认为0
for ( int i = 0 ; i < 10 ; i++) cout<<a[0]; //可以以数组形式索引bitset容器
cout<<endl;
bitset<5> a1(12); //把10以二进制形式存入,容器多余的位用0补齐
cout<<a1<<endl; //01100
for ( int i = 0 ; i < 5 ; i++) cout<<a1[i]; //00110 注 bitset容器以数组形式索引时是从右往左索引
cout<<endl;
bitset<5> a2( "0100" );
cout<<a2<<endl; //00100

c++ bitset详解

也可以使用二维形式的bitset容器(感觉像是二维) 。

bitset<‘size'> 容器名[n],

n表示初始化n个size字节的bitset容器 。

?
1
2
3
4
5
6
bitset<5> b[4];
     for ( int i = 0 ; i < 4 ; i++)
     {
         b[i] = i;
         cout<<b[i]<<endl;
     }

c++ bitset详解

可以向b[i]中存入数据,也可以索引某个位 。

?
1
cout<<b[1][0]<<endl;

输出结果1; 。

betsit用于数据压缩 。

?
1
2
3
bitset<1000> a; //可以用于表示1000以下的正整数,若a[i] = 1 , 则表示存储的有i这个数,这样一个容器就可以压缩存储很多不同的数据
a = a<<i; //这样操作就可以给a中压缩存储的数据都加上i,可大幅降低时间复杂度
a = a>>i; //同理也可以都减去i , 之后索引哪些位是1就可以知道计算后的结果

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我的更多内容! 。

原文链接:https://blog.csdn.net/weixin_53699414/article/details/119854543 。

最后此篇关于c++ bitset详解的文章就讲到这里了,如果你想了解更多关于c++ bitset详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com