C++ 標准庫以若干頭文件的方式提供。
下面簡單介紹一個各頭文件的內容。
第一部分 容器 Containers
<array>
C++11 新增。提供了容器類模板
std::array
,固定大小數組的容器。
<bitset>
提供了專門用來存放位組(一系列 bit)的容器類
std::bitset
。
<deque>
提供了雙向隊列容器類模板
std::deque
。
<forward_list>
C++11 新增。提供了單向鏈表容器類模板
std::forward_list
。
<list>
提供了雙向鏈表容器類模板
std::list
。
<map>
提供了類模板
std::map
和std::multimap
,前者是有序的一組偶對,后者與前者類似但允許鍵重復。
<queue>
提供了由
std::duque
(經過適配器模式)包裝而來的容器類std::queue
,即單向隊列。還提供了優先隊列std::priority_queue
。
<set>
提供了容器類模板
std::set
和std::multiset
。
<stack>
提供了由
std::duque
(經過適配器模式)包裝而來的容器類std::stack
,即棧。
<unordered_map>
C++11 新增。提供了容器類模板
std::unordered_map
和std::unordered_multimap
,它們都屬於哈希表(散列表)。
<unordered_set>
C++11 新增。提供了容器類模板
std::unordered_set
和std::unordered_multiset
。
<vector>
提供了容器類模板
std::vector
,即動態數組。
第二部分 通用 General
<algorithm>
提供了很多針對 STL 容器的算法。
<chrono>
提供了諸如
std::chrono::duration
和std::chrono::time_point
等的時間元素,還有時鍾。
<functional>
提供了一些函數對象(如仿函數)。
<iterator>
提供了與迭代器相關的一些類和模板。
<memory>
提供了 C++ 內存管理的工具,例如
std::unique_ptr
,std::shared_ptr
,std::weak_ptr
。
<stdexcept>
這里面有一些表示異常的類,例如
std::exception
,std::logic_error
,std::runtime_error
。
<tuple>
C++11 新增。提供了元組
std::tuple
。
<utility>
提供了類模板偶對
std::pair
。所謂偶對,就是放在一起的、有序的兩個東西 (a,b)。提供了 namespacestd::rel_ops
,用來更簡便地使用運算符重載。
第三部分 本地化 Localization
<locale>
以類和函數的形式封裝了與區域有關的操作。
<codecvt>
提供了不同代碼頁(code page)之間字符編碼的轉換功能。
第四部分 字符串 Strings
<string>
提供了 C++ 標准的字符串類和字符串模板。
<regex>
C++11 新增。提供了用正則表達式進行字符串匹配的功能。
第五部分 流與輸入輸出 Streams and Input/Output
<fstream>
提供了對文件的輸入輸出設施。
<iomanip>
提供了控制輸出格式的功能。例如,基於特定的進制數格式化整數,或者控制浮點數的精度。
<ios>
提供了 iostream 需要的一些類型和函數。
<iosfwd>
提供了一些與 I/O 有關的轉發操作。
<iostream>
提供了 C++ 輸入與輸出的基礎層。
<istream>
提供了類模板
std::istream
和其他與輸入相關的輔助類。
<ostream>
提供了類模板
std::ostream
和其他與輸出相關的輔助類。
<sstream>
提供了類模板
std::stringstream
和其他用來處理字符串流的類。
<streambuf>
提供了對字符序列(文件或字符串)進行讀寫的基礎設施。
第六部分 輔助 Language support
<exception>
提供了一些與異常處理有關的類型和函數。
<limits>
提供了類模板
std::numeric_limits
,用來描述基本數字類型的最值。
<new>
與
new
和delete
運算符有關的一些類型和函數。
<typeinfo>
C++ 運行時的類型信息的一些工具。
第七部分 線程支持 Thread support library
<thread>
C++11新增。提供了使用線程所需要的類和 namespace。
<mutex>
C++11新增。這里面有互斥對象(mutex),鎖(lock),還有 once(一種用來保證某函數在某進程中只執行一次的對象)。
<condition_variable>
C++11新增。條件變量。一個條件變量代表一個條件,當一個條件變量等待時,它會阻塞當前線程,直到它代表的條件為真。
<future>
C++11新增。可以用它來進行便捷的異步操作,以免代碼中出現一大堆回調函數。
第八部分 數學與數值計算 Numerics library
使得 C++ 程序可以執行(不完善的)數學運算的組件。
<complex>
復數相關。
<random>
(偽)隨機數相關。
<valarray>
定義了五個類模板
valarray
,slice_array
,gslice_array
,mask_array
,indirect_array
,兩個類slice
,gslice
,還有一系列相關的函數模板。
<numeric>
一些通用的數學運算。
第九部分 C 標准庫 C standard library
C 標准庫也可以在 C++ 中使用。
https://my.oschina.net/jthmath/blog/886195