2018-02-10

Boolan STL 第二周

OOP與GP區(qū)別:OOP總是將data與methods關(guān)聯(lián)在一起,GP則是將data與methods分開。

使用GP的好處:


algorithms的本質(zhì):最終都是元素之間比大小。

list為什么不能使用::sort()?:因為list內(nèi)部元素是分開的,它的iterator不是random access iterator,無法使用algorithm提供的sort()。

無法被overload的符號:"::",".",".*"

allocator中的operator new()實現(xiàn):調(diào)用malloc(),會額外占用空間記錄申請內(nèi)存大?。╟ookies)和填充pad到16的倍數(shù),所以申請小塊空間相較于申請大塊空間的空間利用率會小的多。

G2.9的alloc優(yōu)點:分成16塊空間,從8byte開始每塊空間存放的元素遞增8byte,第16塊空間存放元素為128byte,每塊空間后面存放的元素之間沒有cookies,只在整塊前后有cookies,大大減少系統(tǒng)開銷。

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

list(雙向循環(huán)鏈表結(jié)構(gòu)):

list的iterator的實現(xiàn):


iterator的實現(xiàn)的區(qū)別:除vector、array直接使用其指針外其他容器的iterator都是由smart pointer實現(xiàn)。

iterator必須提供的五種供algorithms的associated type:

iterator traits的用途:區(qū)分class iterator和non-class iterator,利用偏特化來實現(xiàn)5種associated type的提供,主要是為pointer類型提供typedef的功能。

完整的iterator_traits:

vector的代碼實現(xiàn):

vector的push_back實現(xiàn):

vector的iterator實現(xiàn):

array實現(xiàn):

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 速成不可能,因為絕大多數(shù)的成績都需要時間來孕育,而時間可不會因為某個人的意志而改變其流逝的速度。 但快速入門絕對是...
    新小派自由行走的花閱讀 107評論 0 0
  • 日本有一個國寶級的大廚,“壽司之神”小野二郎,今年已經(jīng)92歲了。你要是到他的壽司店吃一次,一個人至少要花三萬日元,...
    尋世良方Cc_Sandy拎0閱讀 334評論 0 3
  • 各位親愛的養(yǎng)生的佳人們大家晚上好。很高興又和大家歡聚一堂來共同分享我們今晚的主題孝素輕斷食。臨近中國最傳統(tǒng)最盛大的...
    朱衛(wèi)英閱讀 411評論 0 0
  • 嗨,大家好! 我家小弟就是呆萌的小正太,(你們可別以為他人小就好欺,其實他的“殺傷力”很大的喔。)所謂“...
    玉米頭閱讀 490評論 1 2
  • 1.三星手機(jī)調(diào)用系統(tǒng)照相機(jī)bug 2.解決Fragment的重復(fù)創(chuàng)建 3.解決Fragment的重復(fù)創(chuàng)建 在OnC...
    沖鋒在路上的兵閱讀 351評論 0 0

友情鏈接更多精彩內(nèi)容