命名空間
變體
動作

C++ 標準函式庫標頭檔

出自 cppreference.com
< cpp
 
 
標準函式庫標頭檔
演算法
<algorithm>
<numeric>
字串
<cctype>
<cstring>
<cuchar> (C++11)
<cwchar>
<cwctype>
<string_view> (C++17)
<string>
文字處理
<clocale>
<codecvt> (C++11/17/26*)
<locale>
<regex> (C++11)
<text_encoding> (C++26)   
數值
<cfenv> (C++11)
<cmath>
<complex>
<linalg> (C++26)
<numbers> (C++20)
<random> (C++11)
<simd> (C++26)
<valarray>
時間
<chrono> (C++11)
<ctime>
C 相容性
<ccomplex> (C++11/17/20*)
<ciso646> (直到 C++20)
<cstdalign> (C++11/17/20*)
<cstdbool> (C++11/17/20*)
<ctgmath> (C++11/17/20*)
 

C++ 標準函式庫的介面是由以下標頭檔集合所定義的。

目錄

多用途標頭檔

通用用途公用程式:程式控制動態記憶體配置隨機數排序與搜尋[編輯]
為演算法的平行版本預定義的執行策略以及執行控制元件(自 C++26 起)[編輯]

語言支援函式庫

浮點類型的極限[編輯]
整數類型的極限[編輯]
(C++20)
三向比較運算子支援[編輯]
合約 (Contracts) 支援函式庫[編輯]
協程 (Coroutine) 支援函式庫[編輯]
儲存(並跳轉到)執行上下文的巨集(與函式)[編輯]
用於訊號管理的函式與巨集常數[編輯]
處理可變長度引數列表[編輯]
標準巨集與類型定義 (typedefs)[編輯]
(C++11)
固定寬度整數類型其他類型的極限[編輯]
例外處理公用程式[編輯]
std::initializer_list 類別範本[編輯]
查詢算術類型的屬性[編輯]
低階記憶體管理公用程式[編輯]
提供獲取原始碼位置的方法[編輯]
固定寬度浮點類型[編輯]
std::type_index[編輯]
執行期類型資訊公用程式[編輯]
(C++20)
提供用於驗證函式庫實作狀態的巨集[編輯]

概念 (Concepts) 函式庫

基本函式庫概念[編輯]

診斷函式庫

將其引數與零進行比較的條件編譯巨集[編輯]
包含最後一個錯誤代碼的巨集[編輯]
偵錯函式庫[編輯]
堆疊追蹤 (Stacktrace) 函式庫[編輯]
標準例外類型[編輯]
定義 std::error_code,一種平台相關的錯誤碼[編輯]

記憶體管理函式庫

高階記憶體管理公用程式[編輯]
多型配置器與記憶體資源[編輯]
巢狀配置器類別[編輯]

元程式設計 (Metaprogramming) 函式庫

(C++11)
編譯期有理數算術[編輯]
編譯期類型資訊公用程式[編輯]

通用公用程式函式庫

(C++17)
std::any 類別[編輯]
(C++20)
位元操作 (Bit manipulation) 函式[編輯]
std::bitset 類別範本[編輯]
std::expected 類別範本[編輯]
函式物件、函式調用、綁定操作與參照包裝器 (Reference wrappers)[編輯]
std::optional 類別範本[編輯]
(C++11)
std::tuple 類別範本[編輯]
各種公用程式組件[編輯]
(C++17)
std::variant 類別範本[編輯]

容器函式庫

(C++11)
std::array 容器[編輯]
std::deque 容器[編輯]
std::flat_mapstd::flat_multimap 容器配接器 (adaptors)[編輯]
std::flat_setstd::flat_multiset 容器配接器 (adaptors)[編輯]
std::forward_list 容器[編輯]
(C++26)
std::hive 容器[編輯]
std::inplace_vector 容器[編輯]
std::list 容器[編輯]
std::mapstd::multimap 關聯式容器[編輯]
(C++23)
std::mdspan 視圖 (view)[編輯]
std::queuestd::priority_queue 容器配接器 (adaptors)[編輯]
std::setstd::multiset 關聯式容器[編輯]
(C++20)
std::span 視圖 (view)[編輯]
std::stack 容器配接器[編輯]
std::unordered_mapstd::unordered_multimap 未排序關聯式容器[編輯]
std::unordered_setstd::unordered_multiset 未排序關聯式容器[編輯]
std::vector 容器[編輯]

疊代器函式庫

範圍迭代器[編輯]

Ranges 程式庫

std::generator 類別範本[編輯]
(C++20)
範圍存取、基元、需求、公用程式與配接器 (adaptors)[編輯]

演算法函式庫

操作範圍的演算法[編輯]
對範圍內數值的數值操作[編輯]

字串函式庫

各種窄字元字串處理函式[編輯]
std::basic_string 類別範本[編輯]
std::basic_string_view 類別範本[編輯]

文本處理函式庫

用於確定窄字元類別的函式[編輯]
std::to_charsstd::from_chars[編輯]
C 在地化 (Localization) 公用程式[編輯]
(C++11)(於 C++17 中棄用)(於 C++26 中移除)
Unicode 轉換設施[編輯]
(C++11)
C 風格的 Unicode 字元轉換函式[編輯]
各種多位元組字串處理函式[編輯]
用於確定寬字元類別的函式[編輯]
(C++20)
格式化函式庫,包含 std::format[編輯]
在地化 (Localization) 公用程式[編輯]
(C++11)
支援正規表示式處理的類別、演算法與迭代器[編輯]
文字編碼識別[編輯]

數值函式庫

(C++11)
浮點環境存取函式[編輯]
常見數學函式[編輯]
複數類型[編輯]
(C++26)
基本線性代數演算法 (BLAS)[編輯]
(C++20)
數學常數[編輯]
(C++11)
隨機數產生器與分佈[編輯]
(C++26)
資料平行 (Data-parallel) 類型以及對這些類型的操作[編輯]
用於表示與操作數值陣列的類別[編輯]

時間函式庫

(C++11)
C++ 時間公用程式[編輯]
C 風格的時間/日期公用程式[編輯]

輸入/輸出函式庫

格式化巨集intmax_tuintmax_t 的數學運算與轉換[編輯]
C 風格的輸入輸出函式[編輯]
std::filesystem::path 類別與支援函式[編輯]
std::basic_fstreamstd::basic_ifstreamstd::basic_ofstream 類別範本與類型定義 (typedefs)[編輯]
用於控制輸入與輸出格式的輔助函式[編輯]
std::ios_base 類別、std::basic_ios 類別範本與類型定義 (typedefs)[編輯]
輸入/輸出函式庫中所有類別的前置宣告[編輯]
數個標準串流物件[編輯]
std::basic_istream 類別範本與類型定義 (typedefs)[編輯]
std::basic_ostreamstd::basic_iostream 類別範本與類型定義 (typedefs)[編輯]
(C++23)
格式化輸出函式庫,包含 std::print[編輯]
std::basic_spanstreamstd::basic_ispanstreamstd::basic_ospanstream 類別範本與類型定義 (typedefs)[編輯]
std::basic_stringstreamstd::basic_istringstreamstd::basic_ostringstream 類別範本與類型定義 (typedefs)[編輯]
std::basic_streambuf 類別範本[編輯]
(於 C++98 中棄用)(於 C++26 中移除)
std::strstreamstd::istrstreamstd::ostrstream[編輯]
std::basic_osyncstreamstd::basic_syncbuf 與類型定義 (typedefs)[編輯]

並行支援函式庫

(C++11)
原子操作 (Atomic operations) 函式庫[編輯]
(C++20)
屏障 (Barriers)[編輯]
執行緒等待條件[編輯]
(C++11)
非同步運算的基元 (Primitives)[編輯]
危險指標 (Hazard pointers)[編輯]
(C++20)
閂鎖 (Latches)[編輯]
(C++11)
互斥 (Mutual exclusion) 基元[編輯]
(C++26)
讀取-複製-更新 (Read-copy update) 機制[編輯]
號誌 (Semaphores)[編輯]
共用互斥基元[編輯]
用於 std::jthread 的停止權杖 (Stop tokens)[編輯]
(C++11)
std::thread 類別與支援函式[編輯]

[編輯] C 相容性標頭檔

針對某些形式為 xxx.h 的 C 標準函式庫標頭檔,C++ 標準函式庫同時包含了一個同名的標頭檔與另一個形式為 cxxx 的標頭檔(所有有意義的 cxxx 標頭檔皆列於上方)。xxx.h 形式標頭檔的預期用途僅供互通性使用。為了成為有效的 ISO C,C++ 原始檔可能需要包含這些標頭檔之一。不打算同時作為有效 ISO C 的原始檔不應使用任何 C 標頭檔。

除了 complex.h 之外,C++ 標準函式庫中包含的每個 xxx.h 標頭檔都會將對應 cxxx 標頭檔原本會放入 std 命名空間中的每個名稱,改為放入全域命名空間中。

這些標頭檔也允許在 std 命名空間中宣告相同的名稱,且對應的 cxxx 標頭檔也允許在全域命名空間中宣告相同的名稱:包含 <cstdlib> 肯定會提供 std::malloc,也可能會提供 ::malloc。包含 <stdlib.h> 肯定會提供 ::malloc,也可能會提供 std::malloc。這甚至適用於不屬於 C 標準函式庫的函式與函式多載。

註:xxx.h 標頭檔在 C++98 中被棄用,但在 C++23 中取消棄用。對於純 C++ 程式碼不鼓勵使用這些標頭檔,但它們不會在未來被移除。

行為與 <cassert> 相同[編輯]
行為如同將 <cctype> 中的每個名稱放入全域命名空間中[編輯]
行為與 <cerrno> 相同[編輯]
(C++11)
行為如同將 <cfenv> 中的每個名稱放入全域命名空間中[編輯]
行為與 <cfloat> 相同[編輯]
行為如同將 <cinttypes> 中的每個名稱放入全域命名空間中[編輯]
行為與 <climits> 相同[編輯]
行為如同將 <clocale> 中的每個名稱放入全域命名空間中[編輯]
行為如同將 <cmath> 中的每個名稱放入全域命名空間中,
數學特殊函式的名稱除外[編輯]
行為如同將 <csetjmp> 中的每個名稱放入全域命名空間中[編輯]
行為如同將 <csignal> 中的每個名稱放入全域命名空間中[編輯]
行為如同將 <cstdarg> 中的每個名稱放入全域命名空間中[編輯]
行為如同將 <cstddef> 中的每個名稱放入全域命名空間中,
std::byte 與其相關函式的名稱除外[編輯]
行為如同將 <cstdint> 中的每個名稱放入全域命名空間中[編輯]
行為如同將 <cstdio> 中的每個名稱放入全域命名空間中[編輯]
行為如同將 <cstdlib> 中的每個名稱放入全域命名空間中[編輯]
行為如同將 <cstring> 中的每個名稱放入全域命名空間中[編輯]
行為如同將 <ctime> 中的每個名稱放入全域命名空間中[編輯]
(C++11)
行為如同將 <cuchar> 中的每個名稱放入全域命名空間中[編輯]
行為如同將 <cwchar> 中的每個名稱放入全域命名空間中[編輯]
行為如同將 <cwctype> 中的每個名稱放入全域命名空間中[編輯]

[編輯] 特殊 C 相容性標頭檔

標頭檔 <stdatomic.h> 宣告了 C 標準函式庫中也提供的名稱,並定義了 _Atomic 巨集,這在 C 中是一個關鍵字。與其他 xxx.h 標頭檔不同,不提供對應的 <cstdatomic>

定義 _Atomic 並提供 C 標準函式庫中對應的組件[編輯]

[編輯] 空 C 標頭檔

標頭檔 <complex.h><ccomplex><tgmath.h><ctgmath> 不包含任何來自 C 標準函式庫的內容,而是僅包含來自 C++ 標準函式庫的其他標頭檔。

(C++11)(於 C++17 中棄用)(於 C++20 中移除)
單純包含標頭檔 <complex>[編輯]
單純包含標頭檔 <complex>[編輯]
(C++11)(於 C++17 中棄用)(於 C++20 中移除)
單純包含標頭檔 <complex><cmath>:等同於 C 標頭檔 <tgmath.h> 內容的多載已由這些標頭檔提供[編輯]
單純包含標頭檔 <complex><cmath>[編輯]

[編輯] 無意義的 C 標頭檔

標頭檔 <ciso646><cstdalign><cstdbool> 在 C++ 中是無意義的,因為它們在 C 中提供的巨集在 C++ 中是語言關鍵字。

(於 C++20 中移除)
空標頭檔。出現在 C 的 iso646.h 中的巨集C++ 中是關鍵字[編輯]
(C++11)(於 C++17 中棄用)(於 C++20 中移除)
定義一個相容性巨集常數[編輯]
(C++11)(於 C++17 中棄用)(於 C++20 中移除)
定義一個相容性巨集常數[編輯]
無作用[編輯]
定義一個相容性巨集常數[編輯]
定義一個相容性巨集常數[編輯]

[編輯] 不支援的 C 標頭檔

C 標頭檔 <stdatomic.h>,(直到 C++23) <stdnoreturn.h><threads.h> 不包含在 C++ 中,且沒有對應的 cxxx 標頭檔。

[編輯] 實驗性函式庫

C++ TR/TS 也定義了數個標頭檔集合。

[編輯] 參見

關於 C 標準函式庫標頭檔C 語言文件
English Deutsch 日本語 中文(简体) 中文(繁體)