共用方式為


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宣告 、、atexitat_quick_exitexitquick_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的全域函式。 獨立實作可以定義自己的啟動和終止函式。
  • 裝載實作必須支援一個以上的線程同時執行。 獨立實作的實作者會決定其連結庫是否支援並行線程。

Microsoft C++標準連結庫滿足獨立式和託管需求。

C++ 程式庫標頭有兩個更廣泛的細分:

本節包含下列小節:

如需 Visual C++ 執行階段程式庫的詳細資訊,請參閱 CRT 程式庫功能

注意

Microsoft標準連結庫的C++實作通常稱為 STL標準範本庫。 雖然 C++標準連結庫是 ISO 14882 中所定義的連結庫 正式名稱,但由於搜尋引擎中常用的“STL”和“標準範本庫”,我們偶爾會使用這些名稱來更輕鬆地尋找我們的檔。 從歷史觀點來看,“STL”最初提到亞歷山大·斯蒂芬諾夫撰寫的標準範本庫。 該連結庫的部分會在 C++ 標準連結庫中標準化,以及 ISO C 運行時間連結庫、Boost 連結庫的一部分,以及其他功能。 有時候,「STL」也會用來參考從 Stepanov 的 STL 改編之C++標準連結庫的容器和演算法部分。 在本檔中,標準範本庫 (STL) 是指整個標準連結庫C++。

另請參閱

C++ 標準程式庫