日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++容器 bitset

發(fā)布時(shí)間:2024/10/6 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++容器 bitset 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C++語(yǔ)言的一個(gè)類庫(kù),用來(lái)方便地管理一系列的bit位而不用程序員自己來(lái)寫(xiě)代碼。 要使用bitset 類我們必須包含相關(guān)的頭文件????#include <bitset>

bitset除了可以訪問(wèn)指定下標(biāo)的bit位以外,還可以把它們作為一個(gè)整數(shù)來(lái)進(jìn)行某些統(tǒng)計(jì)。 可以如下聲明一個(gè)該類型變量: bitset<N>varm (M) 其中varm為變量名。 N表示該類型在內(nèi)存中占的位數(shù),是二進(jìn)制。 M表示變量varm的初始值。


bitset 有三種聲明方式。在缺省定義中,我們只需簡(jiǎn)單地指明位向量的長(zhǎng)度。例如: bitset< 32 > bitvec; 聲明了一個(gè)含有32 個(gè)位的bitset,對(duì)象位的順序從0 到31。缺省情況下所有的位都被初始化為0 。

#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);bitset<10>first;//empty bitsetcout<<first<<endl;//輸出10個(gè)0bitset<10>second(120ul);//initlize from unsigned long//初始化為無(wú)符號(hào)型整數(shù)120bitset<10>a(5);cout<<a<<endl;//5的二進(jìn)制數(shù)printf("%d\n",a);//輸出5bitset<32>b(-5);cout<<b<<endl;//-5的二進(jìn)制數(shù)(補(bǔ)碼表示)printf("%d\n",b);//輸出-5bitset<10>c(-5);cout<<c<<endl;//-5的二進(jìn)制數(shù)(補(bǔ)碼表示)printf("%d\n",c);//輸出10位二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制的結(jié)果bitset<10>d(string("000101"));//initalize from stringcout<<d<<endl;printf("%d\n",d);//將01字符串轉(zhuǎn)化為十進(jìn)制正整數(shù)bitset<10>e(string("1111111011"));//initalize from stringcout<<e<<endl;printf("%d\n",e);//將01字符串轉(zhuǎn)化為十進(jìn)制正整數(shù)return 0; }

相關(guān)函數(shù)

1.any():

為了測(cè)試bitset 對(duì)象是否含有被設(shè)置為1的位,我們可以使用any()操作 當(dāng)bitset對(duì)象的一位或多個(gè)位被設(shè)置為1 時(shí)any()返回true 例如,對(duì)于bitvec ,如下測(cè)試 bool is_set = bitvec.any(); 它的結(jié)果當(dāng)然是false。

#include<iostream> #include<bitset> using namespace std;int main() {ios::sync_with_stdio(0);bitset<32>mybits;cin>>mybits;if(mybits.any())//任何一位被設(shè)置就返回truecout<<"mybits has "<<(int)mybits.count()<<"bits set\n";elsecout<<"No bit set\n";return 0; }

2.none():

相反,如果bitset 對(duì)象的所有位都被設(shè)置為0 ,則none()操作返回true 例如,對(duì)于bitvec 測(cè)試 bool is_not_set = bitvec.none(); 結(jié)果為true

#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);bitset<32>mybits;cin>>mybits;if(mybits.none())//沒(méi)有任何一位被設(shè)置就返回truecout<<"No bit set\n";elsecout<<"mybits has "<<(int)mybits.count()<<"bits set\n";return 0; }

3.count():

count()操作返回被設(shè)置為1的位的個(gè)數(shù). int bits_set = bitvec.count();

#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);bitset<8> myset(string("10110011"));cout<<int(myset.count())<<" ones\n";cout<<int(myset.size()-myset.count())<<" zeros\n";return 0; }

4.set():

我們可以用set()操作或者下標(biāo)操作符來(lái)設(shè)置某個(gè)單獨(dú)的位 例如,下面的for循環(huán)把下標(biāo)為偶數(shù)的設(shè)置為1. for ( int index = 0; index < 32; ++ index ) if ( index % 2 == 0 ) bitvec[ index ] = 1;

#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);bitset<4> mybits;cout<<mybits.set()<<endl;//1111cout<<mybits.set(2,0)<<endl;//1011cout<<mybits.set(2)<<endl;//1111return 0; }

5.test():

測(cè)試某個(gè)單獨(dú)的位的狀態(tài)

#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);string bitval("01011");bitset<5> mybits(bitval);cout<<boolalpha;for(size_t i=0;i<mybits.size();++i)cout<<mybits.test(i)<<endl;//返回指定位的狀態(tài)return 0; }

6.reset():

要將某個(gè)單獨(dú)的位設(shè)置為0 ,我們可以用reset()或下標(biāo)操作符 下列兩個(gè)操作都將bitvec的第一位設(shè)為0. // 兩者等價(jià)都把第一位設(shè)置為0 bitvec.reset( 0 ); bitvec[ 0 ] = 0; 我們也可以用set()和reset()操作將整個(gè)bitset 對(duì)象的所有位設(shè)為1 或0 ,只要調(diào)用相應(yīng)的操作而不必傳遞位置參數(shù),
我們就可以做到這一點(diǎn).例如: bitvec.reset();// 把所有的位設(shè)置為0
#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);bitset<4> mybits(string("1011"));cout<<mybits.reset(2)<<endl;//1001cout<<mybits.reset()<<endl;//0000return 0; }

7.flip():

flip()操作翻轉(zhuǎn)整個(gè)bitset 對(duì)象或一個(gè)獨(dú)立的位 bitvec.flip( 0 ); // 翻轉(zhuǎn)第一位 bitvec[0].flip(); // 也是翻轉(zhuǎn)第一位 bitvec.flip(); // 翻轉(zhuǎn)所有的位的值


#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);bitset<4> mybits(string("0001"));cout<<mybits.flip(2)<<endl;//0101cout<<mybits[2].flip()<<endl;//0cout<<mybits.flip()<<endl;//1010return 0; }

8.to_ulong();

返回bitset的整數(shù)表示

#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);//string bitval("01011");string bitval="01011";bitset<5> mybits(bitval);cout<<mybits.to_ulong()<<endl;//返回bitset的整數(shù)表示return 0; }

9.to_string():

返回bitset的字符串表示

#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);bitset<5> mybits;//0000mybits.set();//1111string s=mybits.to_string();cout<<s<<endl;//返回bitset的字符串表示return 0; }

10.operator[]()

返回第x位的引用

#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);bitset<5> mybits;//0000mybits[1]=1;mybits[2]=mybits[1];cout<<mybits<<endl;return 0; }

11.operatorss()

比較和賦值運(yùn)算

#include<iostream> #include<bitset> #include<cstdio> using namespace std;int main() {ios::sync_with_stdio(0);bitset<4>first(string("1001"));bitset<4>second(string("0011"));cout<<(first^=second)<<endl;//1010cout<<(first&=second)<<endl;//0010cout<<(first|=second)<<endl;//0011cout<<endl;cout<<(first<<=2)<<endl;//1100cout<<(first>>=1)<<endl;//0110cout<<endl;cout<<(~second)<<endl;//1100cout<<(second<<1)<<endl;//0110cout<<(second>>1)<<endl;//0001cout<<endl;cout<<(first==second)<<endl;//falsecout<<(first!=second)<<endl;//truecout<<endl;cout<<(first&second)<<endl;//0010cout<<(first|second)<<endl;//0111cout<<(first^second)<<endl;//0101cout<<endl;return 0; }

總結(jié)

以上是生活随笔為你收集整理的C++容器 bitset的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人免费精品 | 黄色免费一级视频 | 超碰伊人网 | 欧洲视频一区二区 | 狼人综合av| 99精品国产99久久久久久97 | 日本一二三区不卡 | 少妇激情网 | 久久久精品亚洲 | 波多野在线视频 | 欧美性猛交xxxⅹ富婆 | 欧美一卡二卡三卡四卡 | 超碰97人人干| 九九热综合 | 潮见百合子| av新天堂| 五月婷婷丁香网 | 日韩大尺度在线观看 | 中文字幕日本一区二区 | 无限资源日本好片 | 欧美乱论| 永久久久久久久 | 麻豆国产91在线播放 | 欧美福利网址 | 免费中文视频 | 欧美黄色一级生活片 | 黑色丝袜吻戏亲胸摸腿 | 国产精品99久久久久 | 一本一道久久a久久综合蜜桃 | 国产美女在线看 | 999色综合 | 久久草av | 黄瓜视频在线免费看 | 无码人妻丰满熟妇精品区 | av免费网站在线观看 | 亚洲国产精品无码专区 | 国产黄色免费观看 | 欧美日比视频 | 亚洲一区二区高清视频 | 国产av天堂无码一区二区三区 | 曰本丰满熟妇xxxx性 | 久久国产热视频 | 亚洲视频一 | 日韩精品视频网站 | 久久久夜精品 | 国产成a人亚洲精v品无码 | 日韩狠狠 | 国产精品欧美一区二区三区 | sm久久捆绑调教精品一区 | 欧亚一级片 | 国产1页 | 国产日韩av一区二区 | 蜜臀在线观看 | 宇都宫紫苑在线播放 | xxxxxx欧美| 三级av片 | 日韩精品一区二区三区丰满 | 超碰狠狠 | 中文字幕亚洲一区二区三区 | 高h av| 国产高清视频免费 | 成人h动漫精品一区二区下载 | 男操女视频在线观看 | 一级特黄妇女高潮2 | 99视频网址 | 九九久久免费视频 | 亚洲精品aⅴ中文字幕乱码 国产精品调教视频 | 国产一区二区视频在线播放 | 人人澡人人澡人人澡 | 久久精彩免费视频 | 欧美激情在线观看视频 | 久久依人网 | 亚洲成人黄色在线观看 | 国产精品国产馆在线真实露脸 | 骚视频在线观看 | 久久免费少妇高潮久久精品99 | 狠狠操一区 | 中国国产精品 | 日本天堂在线 | 免费黄色在线播放 | 一级美女大片 | 超碰成人在线免费观看 | 第四色影音先锋 | 熟女熟妇伦久久影院毛片一区二区 | 国产精品熟妇人妻g奶一区 a少妇 | 999午夜| av在线免 | 日韩久久久久久久 | 久久激情免费视频 | 岳奶大又白下面又肥又黑水多 | 高级家教课程在线观看 | 和漂亮岳做爰3中文字幕 | 香港三日本8a三级少妇三级99 | 久久天 | 国产精品黄网站 | 国产成人免费网站 | av大全在线播放 | 凹凸日日摸日日碰夜夜 | 少妇精品视频 |