優點:
(1)有序性。
(2)紅黑樹結構。效率比較高,很多操作都可以在logn的時間複雜度下實現。
缺點:
空間佔用率高。紅黑樹雖然提高了執行效率,但是每乙個節點都需要額外儲存父節點、孩子節點以及紅/黑性質,使得每乙個節點都需要占用大量空間。
**適用場合:**對於有順序要求的問題,map更加高效。
**優點:**由於內部實現為雜湊表,所以查詢速度非常快。
**缺點:**雜湊表建立比較耗費時間。
**適用場合:**對於查詢問題,更加高效。
vector<
int> res
;for
(auto n : res)
cout<
for
(vecotr<
int>
::iterator iter = res.
begin()
; iter != res.
end(
); res++
) cout<<
*iter;
不過前乙個遍歷是唯讀的,不能修改遍歷的值。如果要修改的話,需要將遍歷的變數宣告為引用型別。比如:
for
(auto
&n : res)
n++;
(1)vector res;
(2)vector res(res1);
等價於:vector res = res1;
(3)vector res = ;
等價於:vector res;
如果列表中元素與初始定義的元素不一樣會進行強制型別轉換。
(4)vector res(res1.begin()+1, res1.end()-1);
(5)vector res(5);
res將包含5個元素,每個元素進行預設值初始化,對於int初始化為0。
(6)vector res(5,3);
res被初始化為包含5個值為3的向量。
using value_t = pair<
int,
int>
;
指定別名。
lambar表示式把函式看作物件,lambar表示式可以像物件一樣使用,比如可以賦給變數和作為引數傳遞,還可以像函式一樣對其求值。
比如找出10億個數中最小的一百個。
要利用分布式思想處理海量資料。一台機器不可能跑完所有的資料,可以把資料分散在多台機器中,然後每台機器平行計算各自的topk資料,最後彙總再計算得到最終的topk資料。
對於每個機器分散的資料排序,利用堆。維護乙個大小為k的大頂堆。最開始依次把資料放入堆中,當堆的大小滿的時候,只需要將堆頂元素與下乙個數比較:如果小於堆頂元素則將當前堆頂元素拋棄,並將該元素插入堆中。遍歷完所有的資料即可得到topk資料。
對於複雜度,遍歷陣列需要o(n),一次堆化操作需要o(logk),總共需要o(nlogk)的複雜度,一般k遠小於n,所以o(nlogk)接近於o(n)。
棧一般儲存的是函式的呼叫資訊的函式中申明的變數,因為函式的呼叫是遞迴的,外層函式一定比內層被呼叫的函式先載入和執行,等到內層被呼叫函式結束後才能結束,即需要先進後出。
11 6 C語言學習
逆序輸出 include define maxn 105 int a maxn int main for int i n 1 i 1 i printf d a i printf d n a 0 return 0 scanf d x 其返回值為正確輸入的變數個數.正確執行時會成功給x賦值,即賦值了乙個...
u boot 1 1 6移植筆記(初級篇)
u boot版本 1.1.6 交叉編譯器 3.3.2 開發板 友善之臂mini2440 開發板配置 soc s3c2440 網絡卡 dm9000 nor flash am29lv160db 2m nand flash 256m sdram 64m 以原始檔已存在的 smdk2410專案為基礎進行移植...
機房測試 11 6
電子科大的題,整體不錯,就是t3水了點。但是分3頁pdf是無法接受的 歡迎 ssw02的部落格 為什麼叫三教呢 ssw02還是個高中生,當然不知道了。讀入 第一行兩個非負整數 表示表示補給點個數和需要收集的體力數 第二行 n 個非負整數 第 i 個整數表示在不觸發 bug 的情況下補給點 提供的體力...