C++STL理论基础
C++STL理論基礎
開發工具與關鍵技術:C++、VisualStudio 作者:何任賢 撰寫時間:2019年08月16日 STL(StandardTemplateLibrary,標準模板庫)是惠普實驗室開發的一系列軟件 的統稱。現然主要出現在 C++中,但在被引入 C++之前該技術就已經存在了很長 的一段時間。 STL
的從廣義上講分為三類:algorithm(算法)、container(容器)和 iterator (迭代器),
容器和算法通過迭代器可以進行無縫地連接。幾乎所有的代碼都采 用了模板類和模板函數
的方式,這相比于傳統的由函數和類組成的庫來說提供了 更好的代碼重用機會。在 C++標
準中,STL 被組織為下面的 13 個頭文 件: 、、、
、、、、、 、、、
和。
上圖是指算法、迭代器和容器的關系
STL的六大組件:
那么使用STL有什么好處:
離確實使得 STL 變得非常通用。 例如,在 STL的 vector 容器中,可以放入元素、基
礎數據類型變量、元素 的地址; STL的sort()函數可以用來操作 vector,list 等容器。
們就可以把精力放在程序開發的別的方面。
5.高可重用性:STL 中大多數的代碼都采用了模板類和模版函數的方式實現。
6.高性能:如 map 可以高效地從十萬條記錄里面查找出指定的記錄,因為 map 是采用
紅黑樹的變體實現的。(紅黑樹是平橫二叉樹的一種)
7.跨平臺:如用 windows的 Visual Studio編寫的代碼可以在Mac OS 的XCode 上直接
編譯。
關于STL三類概述
序列式容器的特點:
每個元素都有固定位置--取決于插入時機和地點,和元素值無關。
序列式容器有三種分別是vector 、 deque 、 list
實現頭文件的頭文件分別是、、
關聯式容器的特點:
元素位置取決于特定的排序準則,和插入順序無關
序列式容器有四種分別是set 、 multiset 、 map 、 multimap
實現頭文件的頭文件分別是 、、、
迭代器的概念:迭代器在STL中用來將算法和容器聯系起來,起著一種黏和劑的作用,每一個容器都定義了其本身所專有的迭代器,用以存取容器中的元素。
迭代器部分主要由頭文件, 和 組成。
是一個很小的頭文件,它包括了貫穿使用在 STL 中的幾個模板的聲明。
主要提供了迭代器使用的許多方法。
主要部分是模板類 allocator,它負責產生所有容器中的默認分配器,并
且為容器中的元素分配存儲空間,同時也為某些算法執行期間產生的臨時對象提供
機制。
算法:STL 提供了大約 100 個實現算法的模版函數,只要熟悉了 STL 之后,許多代
碼可以被大大的化簡,只需要通過調用一兩個算法模板,就可以完成所需要的功能并
大大地提升效率。
算法部分主要由頭文件,和組成,
是所有 STL 頭文件中最大的一個,它是由一大堆模版函數組成的。
總結
以上是生活随笔為你收集整理的C++STL理论基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这或许才是产品人真实的工资情况
- 下一篇: 互联网日报 | 7月31日 星期六 |