C++標準連結庫 (STL) 概觀
所有 C++ 程式庫實體都會在一或多個標準標頭中宣告或定義。 此實作包含另外兩個標頭, <hash_map>
以及 <hash_set>
C++ Standard 不需要的 。 如需此實作所支援之標頭的完整清單,請參閱 頭文件參考。
C++標準定義兩種符合規範的連結庫:
- 裝載實作,可支援C++ ISO 標準所描述的所有必要標準連結庫標頭。
- 獨立實作,只需要標準連結庫標頭的子集。 必要的子集為:
獨立標頭子集 | ||
---|---|---|
<atomic> (至少 atomic_signed_lock_free 宣告 和 atomic_unsigned_lock_free ) |
<cstdint> |
<ranges> |
<bit> |
<cstdlib> (至少abort 宣告 、、atexit at_quick_exit 、exit 、 quick_exit ) |
<ratio> |
<cfloat> |
<exception> |
<tuple> |
<climits> |
<functional> |
<typeinfo> |
<compare> |
<initializer_list> |
<source_location> |
<concepts> |
<iterator> |
<type_traits> |
<coroutine> |
<limits> |
<utility> |
<cstdarg> |
<memory> |
<version> |
<cstddef> |
<new> |
自 C++11 起,下列標頭已被取代: <ciso646>
、 <cstdalign>
和 <cstdbool>
。
獨立實作與託管實作之間的其他差異如下:
- 裝載實作需要名為
main
的全域函式。 獨立實作可以定義自己的啟動和終止函式。 - 裝載實作必須支援一個以上的線程同時執行。 獨立實作的實作者會決定其連結庫是否支援並行線程。
C++標準連結庫Microsoft滿足獨立式和託管需求。
C++ 程式庫標頭有兩個更廣泛的細分:
iostreams 慣例。
本節包含下列小節:
如需 Visual C++ 執行階段程式庫的詳細資訊,請參閱 CRT 程式庫功能。
注意
Microsoft標準連結庫的C++實作通常稱為 STL 或 標準範本庫。 雖然 C++標準連結庫是 ISO 14882 中所定義的連結庫 正式名稱,但由於搜尋引擎中常用的“STL”和“標準範本庫”,我們偶爾會使用這些名稱來更輕鬆地尋找我們的檔。 從歷史觀點來看,“STL”最初提到亞歷山大·斯蒂芬諾夫撰寫的標準範本庫。 該連結庫的部分會在 C++ 標準連結庫中標準化,以及 ISO C 運行時間連結庫、Boost 連結庫的一部分,以及其他功能。 有時候,「STL」也會用來參考從 Stepanov 的 STL 改編之C++標準連結庫的容器和演算法部分。 在本檔中,標準範本庫 (STL) 是指整個標準連結庫C++。