STL 什麼是STL 使用STL的好處

2021-08-20 02:22:21 字數 485 閱讀 6341

標準模板庫,由惠普實驗室開發的一系列的標準化的元件,目前是c++的一部分。stl的**廣義上講,分為三類:容器、迭代器、演算法,容器和演算法是通過迭代器無縫連線,string和wstring也是stl的一部分,內嵌在c++的編譯器中。

特點:資料結構(容器)和演算法的分離,演算法有乙份即可,比如sort排序演算法,即可用於vector,也可用於list等等。

高可重用性,stl中幾乎所有的**都採用了模板類和模板函式的方式實現,這相比於傳統的由函式和類組成的庫來說提供了更好的**重用機會。

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

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

跨平台,如windows的vs編寫的**可以在mac os的xcode上直接編譯。

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

小明是乙個很牛逼的程式設計師,在國際標準化組織工作。他現在正在設計新一代的c 標準,標準中有乙個待實現的函式 findmax 這個函式要求使用者輸入任何型別的資料,他都能找到最大的乙個。於是他想到了這個 int findmax int a,int b else char findmax char a...

STL 使用技巧

今天寫了乙個程式,需要用到排序,還有容器。那不用說,在vc裡肯定直接想到stl了,容器我選擇了list,list是最靈活的,效率也高。然後發現使用起來不是那麼得心應手,雖然都知道在 找到答案,但畢竟要查就不是那麼順手了。所以寫完後趕快記錄下來。以便以後返查,順便開個文章專門講stl使用的技巧。當然,...

STL使用總結

emm使用stl也有一段時間,但都是偶爾查查部落格一些零碎的用法,沒有系統的看過,沒有系統的學習過,看了晴神的演算法筆記決定寫一篇部落格總結一下,當然在以後的使用中遇見其他的用法也會記錄下來,迭代加遞迴學習吧,keep learning 標頭檔案 includeusing namespace std...