STL庫學習筆記(一) 什麼是STL?

2022-09-06 09:06:08 字數 920 閱讀 3724

小明是乙個很牛逼的程式設計師,在國際標準化組織工作。

他現在正在設計新一代的c++標準,標準中有乙個待實現的函式:findmax(),這個函式要求使用者輸入任何型別的資料,他都能找到最大的乙個。

於是他想到了這個:

int findmax(int a,int

b)

else

}char findmax(char a,char

b)

else

}

這種寫法成功的解決了問題,可小明還是不滿意:

1.有太多冗餘的**,寫出來的標頭檔案又大又low,全世界的開發者都要罵娘

2.又太多的資料結構需要相容,還有世界各地的開發者整出來的奇形怪狀的資料結構,不能滿足標準庫的要求

它更換了一種寫法:

template t findmax(t a,t b)

else

}

看起來好奇怪!它能執行嗎?

讓我們測試一下:

執行的十分正常,這段函式成功了!此時傳入函式的引數,只要能夠用「>」運算子來比較,就能夠執行。比如int型別,函式會返回大的值,char型別,函式會返回ascii碼靠後的值。這稱為泛型程式設計(generic programming),用人話來說就是用相同的方法處理不同的結構,而支撐這個思想的語法就成為模板(template)。整個stl標準模板庫就是使用template來實現的,他把教科書上的各種資料結構,比如鍊錶啦,佇列啦,棧啦,都封裝到一起,供我們調(tou)用(lan),再配合它的algorithm演算法庫,連排序,二分查詢都不用自己寫啦!

STL 什麼是STL 使用STL的好處

標準模板庫,由惠普實驗室開發的一系列的標準化的元件,目前是c 的一部分。stl的 廣義上講,分為三類 容器 迭代器 演算法,容器和演算法是通過迭代器無縫連線,string和wstring也是stl的一部分,內嵌在c 的編譯器中。特點 資料結構 容器 和演算法的分離,演算法有乙份即可,比如sort排序...

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

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

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

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