在C++中,庫的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了設計庫來擴充功能要好過設計更多的語法的言論。現實中,C++的庫門類繁多,解決的問題也是極其廣泛,庫從輕量級到重量級的都有。
C++標準庫中提供了C++程序的基本設施,雖然C++標準庫隨著C++標準折騰了許多年,直到標準的出臺才正式定型,是已被實踐證明為有工業級別強度的佳作。
C++標準庫的所有頭文件都沒有擴展名。C++標準庫的內容總共在50個標準頭文件中定義,其中18個提供了C庫的功能。
<cname>形式的標準頭文件[<complex>例外]內容與ISO標準C包含的name.h頭文件相同,但容納了C++擴展的功能。
在<cname>形式標準的頭文件中,與宏相關的名稱在全局作用域中定義,其他名稱在std命名空間中聲明。
在C++中還可以使用name.h形式的標準C庫頭文件名。
C++標準庫的內容分為10類:
C1.語言支持 C2.輸入/輸出 C3.診斷 C4.一般工具 C5.字符串
C6.容器 C7.迭代器支持 C8.算法 C9.數值操作 C10.本地化
C1 標準庫中與語言支持功能相關的頭文件 頭文件
<cstddef> 定義宏NULL和offsetof,以及其他標準類型size_t和ptrdiff_t。與對應的標準C頭文件的區別是,NULL是C++空指針常量的補充定義,宏offsetof接受結構或者聯合類型參數,只要他們沒有成員指針類型的非靜態成員即可。
<limits> 提供與基本數據類型相關的定義。例如,對于每個數值數據類型,它定義了可以表示出來的最大值和最小值以及二進制數字的位數。
<climits> 提供與基本整數數據類型相關的C樣式定義。這些信息的C++樣式定義在 <limits>中
<cfloat> 提供與基本浮點型數據類型相關的C樣式定義。這些信息的C++樣式定義在 <limits>中
<cstdlib> 提供支持程序啟動和終止的宏和函數。這個頭文件還聲明了許多其他雜項函數,例如搜索和排序函數,從字符串轉換為數值等函數。它與對應的標準C頭文件stdlib.h不同,定義了abort(void)。abort()函數還有額外的功能,它不為靜態或自動對象調用析構函數,也不調用傳給atexit()函數的函數。它還定義了exit()函數的額外功能,可以釋放靜態對象,以注冊的逆序調用用atexit()注冊的函數。清除并關閉所有打開的C流,把控制權返回給主機環境。
<new> 支持動態內存分配
<typeinfo> 支持變量在運行期間的類型標識
<exception> 支持異常處理,這是處理程序中可能發生的錯誤的一種方式
<cstdarg> 支持接受數量可變的參數的函數。即在調用函數時,可以給函數傳送數量不等的數據項。它定義了宏va_arg、va_end、va_start以及va_list類型
新聞熱點
疑難解答
圖片精選