前言 侯捷的這本《STL源碼剖析》讀本科的時候就拿來膜拜過,但是看不懂。 然后就放棄了,這段時間用STL比較多,上周碰到了一系列問題。 1.需要自定義一個配置器或者自定義一個vector 因為,STL默認的配置器沒有及時釋放內存,當時線上內存使用已超過10g,其中有一半是可以釋放 ...
第一章:概論: 換句話說,STL所實現的,是依據泛型思維架設起來的一個概念結構。這個以抽象概念 abstract concepts 為主體而非以實際類 classes 為主體的結構,形成了一個嚴謹的接口標准。在此接口之下,任何組件都有最大的獨立性,並以所謂迭代器 iterator 膠合起來,或以所謂配接器 adapter 互相配接,或以所謂仿函數 functor 動態選擇某種策略 policy或s ...
2019-12-22 10:28 0 369 推薦指數:
前言 侯捷的這本《STL源碼剖析》讀本科的時候就拿來膜拜過,但是看不懂。 然后就放棄了,這段時間用STL比較多,上周碰到了一系列問題。 1.需要自定義一個配置器或者自定義一個vector 因為,STL默認的配置器沒有及時釋放內存,當時線上內存使用已超過10g,其中有一半是可以釋放 ...
STL中容器分為序列式容器和關聯式容器,其中vector作為最常用的序列式容器之一。 vector基於array,准確的說是基於分配的連續內存,當內存不夠使用時,就在分配一塊內存,一般來說(源自《c++ primer》和《STL源碼剖析》)再分配內存是內存大小是前一大小的兩倍即可 ...
STL的sort()算法,數據量大時采用Quick Sort,分段遞歸排序,一旦分段后的數據量小於某個門檻,為避免Quick Sort的遞歸調用帶來過大的額外負荷,就改用Insertion Sort。如果遞歸層次過深,還會改用Heap Sort。本文先分別介紹這個三個Sort,再整合分析STL ...
STL(Standard Template Library) 我們使用庫函數非常方便,且非常高效(相對於自己實現來說)。那如此好用的模板庫它的內里是什么樣的?它背着我們施展了什么“魔法”呢?我決定一探究竟,相信你也是一樣。我會選用部分重要代碼做分析,用來提升自己,希望后來的你在我的拙見中也能有 ...
vector容器概述 vector的數據安排以及操作方式,與array非常相似。兩者的唯一區別在於空間的運用的靈活性。array是靜態空間,一旦配置了就不能改變;要換個大(或小)一點的房子, ...
這兩天略讀完了《STL源碼剖析》,之所以是略讀,就是只看大體,不講具現(這個詞在《深度探析C++對象模型》中比較多) 已經看過好幾本C++的書了,感覺C++本身設計的博大精深,而C++編譯器就更是一個神奇的東西,換句話說,你永遠不知道C++編譯器背着你做了哪些出乎你意料的事 不扯遠 ...
STL"源碼"剖析-重點知識總結 STL是C++重要的組件之一,大學時看過《STL源碼剖析》這本書,這幾天復習了一下,總結出以下LZ認為比較重要的知識點,內容有點略多 :) 1、STL概述 STL提供六大組件,彼此可以組合套用: 容器 ...
SLT簡介 STL(Standard Template Library),即標准模板庫,是一個高效的C++程序庫。包含了諸多在計算機科學領域里常用的基本數據結構和基本算法。為廣大C++程序員們提供了一個可擴展的應用框架,高度體現了軟件的可復用性。其核心思想就是泛化編程(generic ...