全稱為standard template library,由以下六個部分組成
①容器 container,儲存資料
②迭代器 iterator,訪問容器中的元素
③介面卡 adapter,基礎資料結構------>新的資料結構
④演算法 algorithm,對容器元素進行操作
⑤函式物件 functor,對元素進行定製化操作
⑥配置器 allocator,記憶體管理,對使用者透明
線性容器
關聯容器
set
map
set和map的底層實現都是紅黑樹,查詢和刪除的時間複雜度都為o(logn)
此外還有multiset,multimap,允許關鍵字重複,相關操作類似,在此不再贅述
無需關聯容器
底層實現為hash table
unordered_set
unordered_map
priority_queue
利用模板實現堆排序
#include
#include
using namespace std;
template
void
swap
(t &a, t &b)
template>
class heapsort
;void
heapadjust
(int start,
int end)}}
void
sort()
swap
(arr[0]
, arr[_n-1]
);for(i = _n-
1; i >1;
--i)
}private:
t *_arr;
int _n;
};
c 學習筆記12
概念 過載函式呼叫操作符的類,其物件稱為函式物件 函式物件使用過載的 時,行為類似函式呼叫,也叫仿函式 本質 函式物件 仿函式 是乙個類,不是乙個函式 特點 函式物件在使用時,可以像普通函式那樣呼叫,可以有引數,可以有返回值 函式物件超出普通函式的概念,函式物件可以有自己的狀態 函式物件可以作為引數...
C語言學習筆記12
回顧 1.位置指標 作業 1.id判斷 2.根據id顯示人員資訊 預處理指令是c語言支援的一種特殊指令 它們以 做開頭,不以 做結尾 預處理指令在編譯的第乙個階段被處理 所有預處理指令都是把程式變成另外的樣子 gcc可以使用 e選項單獨處理所有預處理指令 define是乙個預處理指令 這個預處理指令...
C 學習筆記12 STL Deque
deque雙端佇列其實就是乙個雙端陣列 deque是雙端佇列,它有vector沒有的功能,push front,在序列頭部新增元素,它的底層設計也不同於vector,deque的底層是用間接索引的方式實現的,如下圖所示 開始的時候map是乙個指標陣列,裡面儲存著若干個指標,但初始的時候只有其中的乙個...