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)存。