STL實用技術基本概念

2021-07-23 07:56:15 字數 1327 閱讀 8622

stl基本概念

stl(standard template library,標準模板庫)是惠普實驗室開發的一系列軟體的統稱。現然主要出現在c++中,但在被引入c++之前該技術就已經存在了很長的一段時間。stl的從廣義上講分為三類:algorithm(演算法)、container(容器)和iterator(迭代器),容器和演算法通過迭代器可以進行無縫地連線。幾乎所有的**都採 用了模板類和模板函式的方式,這相比於傳統的由函式和類組成的庫來說提供了更好的**重用機會。在c++標準中,stl被組織為下面的13個頭文 件:、、、、、、、、、、、和。

stl的六大元件

– 容器(container)

– 演算法(algorithm)

– 迭代器(iterator)

– 仿函式(function object)

– 介面卡(adaptor)

– 空間配製器(allocator)

使用stl的好處

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

2)stl的乙個重要特點是資料結構和演算法的分離。儘管這是個簡單的概念,但是這種分離確實使得stl變得非常通用。

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

3)程式設計師可以不用思考stl具體的實現過程,只要能夠熟練使用stl就ok了。這樣他們就可以把精力放在程式開發的別的方面。

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

高可重用性:

stl中幾乎所有的**都採用了模板類和模版函式的方式實現,這相比於傳統的由函式和類組成的庫來說提供了更好的**重用機會。關於模板的知識,已經給大家介紹了。

高效能:

如map可以高效地從十萬條記錄裡面查詢出指定的記錄,因為map是採用紅黑樹的變體實現的。(紅黑樹是平橫二叉樹的一種)

高移植性:

如在專案a上用stl編寫的模組,可以直接移植到專案b上。

跨平台:

如用windows的visual studio編寫的**可以在mac os的xcode上直接編譯。

5)了解到stl的這些好處,我們知道stl無疑是最值得c++程式設計師驕傲的一部分。每乙個c++程式設計師都應該好好學習stl。只有能夠熟練使用stl的程式設計師,才是好的c++程式設計師。

6)總之:招聘工作中,經常遇到c++程式設計師對stl不是非常了解。大多是有乙個大致的映像,而對於在什麼情況下應該使用哪個容器和演算法都感到比較茫然。stl是c++程員、

的一項不可或缺的基本技能,掌握它對提公升c++程式設計大有裨益。

ExtJs Gridpanel實用技術

行選擇模式 js var rowcount grid.getselectionnode getselections var rowcount grid.getselectionnode getselections 可以獲取全部選中的記錄,得到的rowcount將是乙個array,比如想獲取 列的資料...

STL 基本概念

stl standard template library,標準模板庫 是惠普實驗室開發的一系列軟體的統稱。現在是乙個c 軟體庫,也是c 標準程式庫的一部分,但在被引入c 之前該技術就已經存在了很長的一段時間。stl的 從廣義上講分為三類 algorithm 演算法 container 容器 和it...

STL基本概念

stl 是c 標準的模板庫,充分體現了軟體的可復用性。stl從廣義上分為三類 algorithm 演算法 container 容器 iterator 迭代器 容器和演算法通過迭代器可以進行無縫的連線,幾乎所有的 都採用了模板類和函式模板的方式,這相比傳統的由函式和類組成的庫來說提供了更好的 重用的機...