(一)stack堆疊
a) lifo後進先出。一般只有三個介面有用:pop(), push(), top()。
b) 可以自己製作乙個,一般封裝deque,原因是deque釋放元素就直接釋放了記憶體,符合堆疊特性。
(二)queue佇列
a) fifo先進先出。核心介面:push(), pop(), front(), back()。
b) 一般封裝deque,理由同上。
(三)priority queue優先佇列
a) 核心介面:push(), pop(), top()。
b) 一般封裝vector,原因是採用heap演算法。用deque也行。
(四)bitset
a) 乙個內含位(bit)的固定大小的array容器。適用於管理標誌(flag)。速度一般並不是非常高效。
b) 可以方便的在數與二進位制編碼之間轉化:
cout <::digits >(267);
cout << bitset<100>(string(「1000101011」)).to_ulong();
關於數值極限,請參考第四章。
c) bitset的初始化方式:
bitset( value );
bitset(const string&, str_idx);
bitset(const string&, str_idx,str_num);
string 裡只能是包含0和1的字串。
str_idx 是字串的位置
str_num 是轉化多少個位
d) 特殊操作
函式名作用
count()
位值為1 的個數
any()
只要有1就為真
none()
都為0就是真
test(idx)
判斷位是否為1
set()
全部設為1
set(idx)
設某位為1
set(idx,value)
設某位的值
reset
全為0reset(idx)
某位設為0
flip
翻轉所有位
flip(idx)
翻轉某一位
自己看左移動,空白填0
右移動,空白填0
~bitset
返回翻轉值
bitset << num
返回左移動num位的值
bitset >> num
返回右移動num位的值
& | ^ bitset
自己看可以使用標準io庫來輸入輸出,比如cin >> bitset; cout << bitset;
只能是包含0和1的字串。
C 標準程式庫 學習筆記 第十章 特殊容器
特殊容器 stack 棧 queue 佇列 priority queue優先佇列 特殊容器沒有迭代器的喲 1.stack 棧 預設由deque實作而成 主要是用 push pop top 三個成員函式 author wzy1222 email 627440781 qq.com for stack i...
10 4 第十章小結
10.4 第十章小結 在這一章,我們 了與函式程式效率有關的問題,討論了用函式方式處理大量資料。因為大多數函式程式使用遞迴實現,這一章的很大一部分就是圍繞這個主題。可以看到,使用遞迴的 一定要仔細,避免由於遞迴太深,引起堆疊溢位的錯誤。在本章開頭,我們討論了一種稱為尾遞迴的技術,它可用來重寫我們熟悉...
C 《C 標準程式庫》小結第十二章 數值
一 複數 1 複數相關演算法少,請移步科學計算庫。2 c 中使用複數complex需要 include 複數普通表現形式為a bi,也可以通過polar函式轉化 complexc1 4.0,3.0 complexc2 polar 5.0,0.75 極座標轉化,模和幅角 注意,complex 高精度 ...