C STL理論基礎

2021-09-26 06:47:28 字數 2005 閱讀 9826

c++stl理論基礎

開發工具與關鍵技術:c++、visualstudio
stl(standardtemplatelibrary,標準模板庫)是惠普實驗室開發的一系列軟體 的統稱。
現然主要出現在 c++中,但在被引入 c++之前該技術就已經存在了很長 的一段時間。 stl

的從廣義上講分為三類:algorithm(演算法)、container(容器)和 iterator (迭代器),

容器和演算法通過迭代器可以進行無縫地連線。幾乎所有的**都採 用了模板類和模板函式

的方式,這相比於傳統的由函式和類組成的庫來說提供了 更好的**重用機會。在 c++標

準中,stl 被組織為下面的 13 個頭文 件: 、、、

、、、、、 、、、和。

上圖是指演算法、迭代器和容器的關係

stl的六大元件:

容器(container) //相當於鍊錶

演算法(algorithm)

迭代器(iterator) //相當於指標

仿函式(functionobject)

介面卡(adaptor)

空間配製器(allocator)

那麼使用stl有什麼好處:

stl是c++的一部分,因此不用額外安裝什麼,它被內建在你的編譯器之內。

stl的乙個重要特點是資料結構和演算法的分離。儘管這是個簡單的概 念,但是這種分

離確實使得 stl 變得非常通用。 例如,在 stl的 vector 容器中,可以放入元素、基

礎資料型別變數、元素 的位址; stl的sort()函式可以用來操作 vector,list 等容器。

我們可以不用思考 stl 具體的實現過程,只要能夠熟練使用 stl 就 ok 了。這樣我

們就可以把精力放在程式開發的別的方面。

stl 具有高可重用性,高效能,高移植性,跨平台的優點。

5.高可重用性:stl 中大多數的**都採用了模板類和模版函式的方式實現。

6.高效能:如 map 可以高效地從十萬條記錄裡面查詢出指定的記錄,因為 map 是採用

紅黑樹的變體實現的。(紅黑樹是平橫二叉樹的一種)

7.跨平台:如用 windows的 visual studio編寫的**可以在mac os 的xcode 上直接

編譯。

關於stl三類概述

容器的概念:用來管理一組元素,容器分為兩類分別是序列式容器(sequence containers)和關聯式容器(associated containers)

序列式容器的特點:

每個元素都有固定位置--取決於插入時機和地點,和元素值無關。

序列式容器有三種分別是vector 、 deque 、 list

實現標頭檔案的標頭檔案分別是、、

關聯式容器的特點:

元素位置取決於特定的排序準則,和插入順序無關

序列式容器有四種分別是set 、 multiset 、 map 、 multimap

實現標頭檔案的標頭檔案分別是 、、、

迭代器的概念:迭代器在stl中用來將演算法和容器聯絡起來,起著一種黏和劑的作用,每乙個容器都定義了其本身所專有的迭代器,用以訪問容器中的元素。

迭代器部分主要由標頭檔案, 和 組成。

是乙個很小的標頭檔案,它包括了貫穿使用在 stl 中的幾個模板的宣告。

主要提供了迭代器使用的許多方法。

主要部分是模板類 allocator,它負責產生所有容器中的預設分配器,並

且為容器中的元素分配儲存空間,同時也為某些演算法執行期間產生的臨時物件提供

機制。演算法:stl 提供了大約 100 個實現演算法的模版函式,只要熟悉了 stl 之後,許多代

碼可以被大大的化簡,只需要通過呼叫一兩個演算法模板,就可以完成所需要的功能並

大大地提公升效率。

演算法部分主要由標頭檔案,和組成,

是所有 stl 標頭檔案中最大的乙個,它是由一大堆模版函式組成的。

TCP IP理論基礎

一 tcp ip的分層模型 osi協議參考模型,它是基於國際標準化組織 iso 的建議發展起來的,它分為7個層次 應用層 表示層 會話層 傳輸層 網路層 資料鏈路層及物理層。這個7層的協議模型雖然規定得非常細緻和完善,但在實際中卻得不到廣泛的應用,其重要的原因之一就在於它過於複雜。但它仍是此後很多協...

TCP IP理論基礎

linux中網路棧的介紹一般分為四層的internet模型。分別為應用層 傳輸層 網際層和網路介面。tcp ip實際上是乙個協同工作的通訊家族,為網路資料通訊提供通路。為方便將tcp ip協議族大致上分為三部分 1.internet協議 ip 這一部分也稱為網路層。主要包括ip icmp和arp。其...

SCM理論基礎

在乙個大型的專案中,會有很多人員,比如說專案管理者 開發人員等,人多的情況下,很可能就會在及時溝通 管理等方面出現問題,具體可以總結為 這些問題的存在,不僅會使我們的開發效率很低,做出來的產品質量也會受影響。有了scm,就很好的解決了這些問題。scmsoftwareconfiguration man...