C STL篇(一) STL基本介紹

2021-10-10 09:32:34 字數 1239 閱讀 5900

1.1、stl基本概念

stl的基本概念:標準模板庫,主要出現在c++中。

stl廣義上的分類:容器(container)、演算法(algorithm)、迭代器(iterator)。容器和演算法之間通過迭代器無縫連線。

1.2、stl六大元件簡介

stl的六大元件之間可以組合套用,六大元件分別是:容器、演算法、迭代器、仿函式、介面卡(配接器)、空間配置器。

容器:vector、set、map、list、deque等用來存放資料。從實現的角度來看,stl容器實際上是一種class template。

演算法:sort、find、copy、for_each等,從實現的角度來看,stl演算法實際上是一種function template。

迭代器:扮演了演算法和容器之間的粘合劑,有五種型別,將operator*,operator->,operator++,operator–等指標相關操作過載的class template。原生指標(native pointer)也是一種迭代器。

仿函式:行為類似函式,可以作為演算法的某種策略。實現角度上看,是過載了operator()的class或者class template。

介面卡:一種用來修飾容器或者仿函式或者迭代器介面的東西。

空間介面卡:負責空間的配置與管理,實現角度看,配置器是實現了動態空間配置、空間管理、空間釋放的class template。

stl六大元件的互動關係:容器通過空間配置器取得資料儲存空間,演算法通過迭代器儲存容器中的內容,仿函式可以協助演算法完成不同的策略的變化,介面卡可以修飾仿函式。

1.3、stl的優點

stl是c++的一部分,無需安裝,內建在編譯器之內。

stl的乙個重要特性是將資料與操作分離。資料由容器類別加以管理,操作則由可定義的演算法定義,迭代器在容器和演算法中充當粘合劑,使得演算法和容器可以互動運作。

不用考慮stl的具體實現過程,只要能夠熟練使用即可。

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

高可重用性:幾乎所有**都採用了模板類和模板函式的方式實現。

高效能:如map可以從龐大的資料中查詢出指定的記錄,map是採用紅黑樹的方式實現的。

高移植性:專案a用的stl**可以直接移植到專案b。

C STL篇(二) STL三大元件

2.1容器 容器 置物之所也,stl容器就是將運用最廣泛的一些資料結構實現出來。1 常用的資料結構 陣列 array 鍊錶 list 樹 tree 棧 stack 集合 set 對映表 map 2 根據資料在容器中的排列特性,分為序列式容器和關聯式容器兩種。序列式容器 強調值的排序,序列式容器中的每...

C STL基本介紹和使用

include include include include include include include include include include using namespace std void testarray 遍歷 for const auto i arr 獲取索引為2的值 co...

C STL庫學習筆記(一) STL初識

容器 container 是一種資料結構,如list,vector,和deques 以模板類的方法提供。為了訪問容器中的資料,可以使用由容器類輸出的迭代器 迭代器 iterator 提供了訪問容器中物件的方法。例如,可以使用一對迭代器指定list或vector中的一定範圍的物件。迭代器就如同乙個指標...