1.C++標準定義了龐大且功能豐富的標準庫,其內容分為10類,包括:
C1語言支持C2輸入/輸出C3診斷功能
C4通用工具C5字符串C6容器
C7迭代器C8算法C9數值操作
C10本地化
2.C++標準庫所有的頭文件都沒有擴展名(.h),內容總共在51個標準頭文件中定義。其中18個<cname>形式的頭文件(<complex>除外)內容與標準C語言的name.h頭文件相同,但包含了C++擴展的功能。
在<cname>形式的頭文件中,與宏定義相關的名稱在全局作用域中定義,其他名稱在std命名空間中聲明。
另外,在C++中還可以使用name.h形式的C語言頭文件,但不建議這樣用。
表1C++標準庫索引
C++標準庫由三組庫構成:
(1)C庫:由C標準庫擴展而來,強調結構、函數和過程,不支持面向對象技術。
(2)C++庫:增加了面向對象的庫,包含了既有關鍵功能的類
(3)標準模板庫(STL):高效的C++程序庫。該庫包含了諸多在計算機科學領域里所常用的基本數據結構和基本算法。
以上庫文件都被定義在namespacestd中。
C++庫可以不規定頭文件的擴展名。
C標準庫
1)<Cmath>:提供給了22個不同的數學函數,如abs()、sqrt()、exp()等。
2)<cstdlib>:提供了常用的數學函數,3個特殊函數和2個常量。
exit():退出程序,清除靜態對象
abort():強制退出程序
atexit():將一個函數作為參數并在程序退出時調用
EXIT_SUCCESS:程序已經正常完成
EXIT_FAULURE:程序正常結束
3)<cassert>:定義了一個函數assert,用來測試一個條件,并在條件為假時強制程序退出。通常用來判斷內存分配是否成功。
4)<cctype>:提供了確定字符類型的功能。可以判斷一個字符是否為數字字符、圖形字符、小寫、大寫或空格并可以將字符進行大小寫轉換。
5)<cerrno>:定義了一個變量,用它可以確定程序中發生的錯誤的類型。
C++類庫
1)<string>:支持字符串處理的類庫
2)<complex>:提供了復數的表示和算法
float_complex類
double_complex類
long_double_complex類
3)<ios>定義了I/O流類的虛基類ios,通常不直接用它。
4)<iostream>:標準I/O流類庫,提供了cin、cout等全局對象類來支持輸入輸出功能
5)<istream>:輸入流類庫
6)<ostream>:輸出流類庫
7)<fstream>:讀寫文件的類
標準模板庫STL
在標準庫中,容器、迭代器、算法和數值操作合稱為標準模板庫。
STL被組織為以下13個頭文件:<algorithm>,<deque>,<functional>,<iterator>,<vector>,<list>,<map>,<memory>,<numeric>,<queue>,<set>,<stack>,和<utility>。
幾乎所有的標準模板代碼采用了類模板和函數模板的形式,因此相比于傳統的由函數和類組成的庫來說STL提供了更好的代碼重用。
<algothrithm>:提供了通用的算數算法和STL的一般算法。
sort:以升序重新排列范圍內的元素
swap:交換存儲在兩個對象中的值
max_element:指出序列中最大的元素
find:對范圍內的元素進行查找
copy:復制序列
replace:將范圍內的所有等于old_value的元素都用new_value替代。
<numerialc>:提供了4類對序列進行數字處理的算法
accumulate:累加
product:內乘
partial_sum:部分和
adjacent_difference():鄰接差值