標準模板庫學習(1) 什麼是STL

2021-10-02 20:29:24 字數 974 閱讀 4487

先跳過類和物件部分,我們先來了解一下c++中的標準模板庫。標準模板庫,standard template library,簡稱stl。stl作為c++的補充,包括了容器、演算法和迭代器等內容,可以使得程式設計更加高效和簡潔。容器實現了多個型別的資料結構和一些相關操作;演算法提供了排序、查詢、替換等功能,容器和演算法之間則是通過迭代器進行銜接。

stl是為了建立演算法和資料結構之間的標準,它的**中的絕大部分都採用了函式模板和類模板。主要有六大元件:

容器:各種資料結構,vector、list、map、set等

演算法:常用的演算法

迭代器:將演算法和容器進行銜接

仿函式:行為類似函式,可以作為演算法的某種策略,

介面卡:修飾容器、迭代器或仿函式介面

空間配置器:顧名思義,配置和管理空間

前面三個是最核心的元件,需要重點掌握。

容器就是裝東西用的,這裡裝的就是資料,容器中的資料不同,用的容器也是不一樣的,比如喝水用杯子,吃飯用碗,各種各樣的容器有其自身的特殊用處。資料也是一樣的,有陣列,有鍊錶等等,對於不同的資料要採用對應的容器。

容器主要是分為兩類,一種是序列容器,一種是結合容器。

序列容器主要強調資料的順序,該類容器中但是的資料都有乙個固定的位置,但是容器中的元素並沒有做排序操作,比如一組資料 1,3,4,2,0,那麼容器中的存放的時候依然是1,3,4,2,0。但是結合容器中的元素是經過排序的,剛才的資料放入結合容器可能就是0,1,2,3,4這樣的結果。

演算法就是用來解決問題的方法。stl提供了演算法庫,演算法有四類:修正序列演算法、非修正序列演算法、排序演算法和數值演算法。

迭代器作為容器和演算法之間的通訊員,可以在容器內自由移動,按順序訪問容器中的各個元素,並且不需要暴漏容器的內部表示方式。打個比方,迭代器是通訊員,演算法就是通行證,而容器就是憑藉該通行證可以訪問的通行區。每乙個容器都有自己專屬迭代器,迭代器類似於指向容器中元素的指標,包括輸入、輸出、前向、雙向和隨機訪問迭代器。

stl的基本了解就到此,之後會分別進行主要元件的用法介紹。

學習標準模板庫STL

標準模板庫 stl,即standard template library 是乙個c 軟體庫。stl常見頭件包括algorithm,functional iterator vector list deque queue stack等。在學習過程中與其他常見庫對比,如mfc,wxwidgets,itk,...

STL標準模板庫學習 前言

題目 學完之後給出答案。某學校舉行一場唱歌比賽,共有24人參加,按參加順序設定參賽號 參賽號為100至123 每個選手唱完一首歌之後,由10個評委分別打分。改選手的最終得分是去掉乙個最高分和乙個最低分,求得剩下的8個評分的平均分。比賽共3輪,前兩輪為淘汰賽,第三輪為決賽。選手的名次按得分降序排列,若...

c 標準模板庫STL學習

初始化vector物件的方法 vector v1 vector儲存型別為t的物件。預設建構函式v1為空 vector v2 v1 v2是v1的乙個副本 vector v3 n,i v3包含n個值為i的元素 vector v4 n v4包含有值初始化元素的n個副本 vector常用函式 empty 判...