C++ 標準程式庫 (STL) 概觀
所有 C++ 程式庫實體都會在一或多個標準標頭中宣告或定義。 此實作包含另外兩個標頭, <hash_map>
以及 <hash_set>
C++ 標準不需要的 。 如需此實作所支援之標頭的完整清單,請參閱 標頭檔參考 。
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
的全域函式。 獨立實作可以定義自己的啟動和終止函式。 - 裝載實作必須支援一個以上的執行緒同時執行。 獨立實作的實作者會決定其程式庫是否支援平行線程。
Microsoft C++ 標準程式庫既符合獨立式又裝載的需求。
C++ 程式庫標頭有兩個更廣泛的細分:
iostreams 慣例。
本節包含下列小節:
如需 Visual C++ 執行階段程式庫的詳細資訊,請參閱 CRT 程式庫功能。
注意
Microsoft 的 C++ 標準程式庫實作通常稱為 STL 或 標準範本程式庫 。 雖然 C++ 標準程式庫是 ISO 14882 中所定義的程式庫 正式名稱,但由於搜尋引擎中常用的使用 「STL」 和 「Standard Template Library」,我們偶爾會使用這些名稱來更輕鬆地尋找我們的檔。 從歷史觀點來看,「STL」最初提到亞歷山大·斯蒂芬諾夫撰寫的標準範本庫。 該程式庫的部分已在 C++ 標準程式庫中標準化,以及 ISO C 執行時間程式庫、Boost 程式庫的一部分,以及其他功能。 有時候,「STL」 也用來參考從 Stepanov 的 STL 改編的 C++ 標準程式庫容器和演算法部分。 在本檔中,標準範本程式庫 (STL) 是指 C++ 標準程式庫整體。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應