2018-02-02

Boolan STL 第一周

GP(Generic Programming 泛型編程):使用模板作為主要工具來編程。

C++標(biāo)準(zhǔn)庫(kù)與C++標(biāo)準(zhǔn)模板庫(kù):

STL六大部件:容器(container)、分配器(allocator)、算法(algorithms)、迭代器(iterator)、適配器(adapter)、仿函數(shù)(functor)

STL六大部件關(guān)系

復(fù)雜度Big-oh:

Range-based For Statement & Auto(c++11)

容器分類:Sequence Container(序列式容器)、Associative Container(關(guān)聯(lián)式容器):unordered container(不定序容器屬于關(guān)聯(lián)式)

容器結(jié)構(gòu):

array:數(shù)組,定長(zhǎng)

vector:動(dòng)態(tài)數(shù)組,在內(nèi)存中可向后擴(kuò)展,每次以兩倍的空間向內(nèi)存中申請(qǐng)新地址并將以前的內(nèi)容拷貝進(jìn)新空間內(nèi)

list:雙向鏈表,提供自身sort()函數(shù)

☆容器自身提供的函數(shù)如sort()、find()等總是優(yōu)于系統(tǒng)提供的函數(shù)。

forword_list:?jiǎn)蜗蜴湵恚惶峁﹑ush_front功能

deque:雙向開口進(jìn)出,內(nèi)存中是分段連續(xù)的,使用者感覺整體連續(xù)。每次兩端空間用完后會(huì)向外擴(kuò)充1個(gè)buffer。

stack(先進(jìn)后出)、queue(先進(jìn)先出):本質(zhì)由deque實(shí)現(xiàn),用了Adapter設(shè)計(jì)模式,技術(shù)上稱為容器適配器。

set(unique)/multiset(UNunique):關(guān)聯(lián)式容器,底層使用紅黑樹,只能存儲(chǔ)一個(gè)元素,也是key,set和multiset區(qū)別在于key是否唯一。

map(unique)/multimap(UNunique):關(guān)聯(lián)式容器,底層使用紅黑樹,存儲(chǔ)一個(gè)key,一個(gè)value,map和multimap區(qū)別在于key是否唯一,且multimap不提供如C[key]調(diào)用方法。

unordered_set(unique)/unordered_multiset(UNunique):關(guān)聯(lián)式容器,底層Hash_Table

unordered_map(unique)/unordered_multimap(UNunique):關(guān)聯(lián)式容器,底層Hash_Table

分配器:一般使用默認(rèn),gnu和vc也提供其他分配器,但是沒必要手動(dòng)調(diào)用分配器來申請(qǐng)釋放內(nèi)存。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容