C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset类型
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 提取 bitset 的值
函數返回一個值,保存了與bitset 對象相同的位模式。
- to_ulong() // 返回unsigned long
- to_ullong() //返回unsigned long long
只有當bitset 的大小小于等于對應的大小時, 我們才能使用這兩個操作(如果bitset中的值不能放入給定類型中,則這兩個操作會拋出一個overflow error異常)
unsigned long ulong = bitvec3.to_ulong( ); cout ? "ulong = " ? ulong << endl;2. bitset 的 IO 運算符
輸入運算符從一個輸入流讀取字符, 保存到一個臨時的 string 對象中。 直到讀取的字符數達到對應 bitset 的大小時, 或是遇到不是 1 或 0 的字符時, 或是遇到文件尾或輸入錯誤時, 讀取過程才停止。 隨即用臨時 string 對象來初始化 bitset 。如果讀取的字符數小于bitset 的大小, 則與往常一樣, 高位將被置為 0。
輸出運算符打印一個 bitset 對象中的位模式:
bitset<16> bits; cin ? bits; // 從 cin 讀取最多 16 個 0 或 1 cout ? "bits: " ? bits << endl; // 打岡1岡讀取的內容3. 使用 bitset
用bitset代替 unsigned long 表示 30 個學生的測驗結果—“ 通過/失畋”:
bool status; // 使用位運算符的版本 unsigned long quizA = 0; // 此值被當做位集合使用 quizA |= 1UL << 27; // 指出第 27 個學生通過了測驗 status = quizA & (1UL << 27); // 檢查第 27 個學生是否ton過了測驗 quizA &= ~(1UL << 27); // 第 27 個學生未通過測驗// 使用標準庫類 bitset 完成等價的工作 bitset<30> quizB; // 每個學生分配一位,所有為都被初始化為 0 quizB.set(27); // 指出第 27 個學生通過了測驗 status = quizB[27]; // 檢查第 27 個學生是否通過了測驗 quizB.reset(27); // 第 27 個學生未通過測驗總結
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha