標準c++庫分類簡介

轉載:http://blog.csdn.net/panker2008/article/details/46270875

1:標準c++庫和stl庫

     理解兩個庫,大致就一句話:stl是c++標準庫的一個子集,c++的標準庫主要有三部分:c標準庫的c++版本;c++的IO庫;c++的STL庫

     C標準庫的c++版本:原來的c版本是<*.h>,c++版本是<c*>

     C++的IO庫:最常用的是iostream,fstream

     C++的stl庫:下面會詳細理解

      c++標準庫百度百科上給的解釋:

      它是類庫和函數的集合,其使用核心語言寫成,由c++標準委員會制定,並不斷的維護和更新的庫,c++的標準庫文件總共在50個標準頭文件中定義,

      在c++的開發中儘量的使用標準庫的好處:

      1、成本低 2、質量 3、效率 4、良好的編程風格 

      標準庫分爲10類:

   C++標準庫
  1、標準庫中與語言支持功能相關的頭文件
    1、<cstddef>
      定義宏NULL和Offsetof,以及其他標準類型的size_t和ptrdiff
    2、<limits>
      提供與基本數據類型相關的定義。例如,對於每個數值數據類型,它定義了可以表示出來的最大值和最小值以及二進制數字的位數。
    3、<climits>
      提供了與基本整數數據類型相關的C樣式定義。這些信息的c++樣式定義在<limits>中
    4、<cfloat>
      提供與基本浮點型數據相關的C樣式定義。這些c++的樣式定義在<limits>中
    5、<cstdlib>
      提供支持程序啓動和終止的宏和函數。這個頭文件還聲明瞭許多其他雜項函數,例如搜索和排序函數,從字符串轉換成數值的函數, 他與對應的標準c頭文件stdlib.H不同,定義了abort(VOID).abort函數還有額外的功能,它不爲靜態或者自動對象調用析構函數,也不調用 atexit()函數,它還定義了exit()函數的額外功能,可以釋放靜態對象,以註冊的逆序調用用atexit註冊的函數。清楚並關閉所打開的c流,把 控制權返回給主機環境
    6、<new>
      支持動態內存分配
    7、<typeinfo>
      支持變量在運行期間的類型標識
    8、<exception>
      支持異常處理,這是處理程序中可能發生的錯誤的一種方式
    9、<cstdarg>
      支持接收數量可變的參數的函數,記載調用函數時,可以給函數傳送數量不等的數據項,他定義了宏va_arg,va_end,va_start,以及va_list類型
    10、<csetjmp>
      爲c樣式的非本地跳躍提供函數。這些函數在c++中不常用
    11、<csignal>
      爲中斷處理體從c樣式支持
  2、支持流輸入輸出的頭文件
    1、<iostream>
      支持標準流cin、cout、cerr和clog的輸入和輸出,並且支持多字節的輸入輸出
    2、<iomanip>
      提供操縱程序,允許改變流的狀態,從而改變輸出的格式
    3、<ios>
      定義iostream的基類
    4、<istream>
      爲管理輸出流緩存區的輸出定義模板類
    5、<ostream>
      爲管理輸出流緩存區的輸出定義模板類
    6、<sstream>
      支持字符串的流輸入輸出
    7、<fstream>
      支持文件流輸入輸出
    8、<iosfwd>
      爲輸入輸出對象提供 向前的聲明
    9、<streambuf>
      支持流輸入和輸出的緩存
    10、<cstdio>
      爲標準流提供c樣式的輸入輸出
    11、<cwchar>
      支持多字節字符的輸入輸出
  3、與診斷功能相關的頭文件
    1、<stdexcept>
      定義標準異常。異常時處理錯誤的方式
    2、<cassert>
      定義斷言宏,用於檢查運行期間的情形
    3、<cerrno>
      支持c樣式的錯誤信息
  4、定義工具函數的頭文件
    1、<utility>
      定義重載的關係運算符,簡化關係運算符的寫入,它還定義了pair類型
    2、<functional>
      定義了許多函數對象類型和支持函數對象的功能,函數對象是支持operator()函數調用運算符的任意對象
    3、<memory>
      給容器、管理內存的函數和auto_ptr模板類定義標準內存分配器
    4、<ctime>
      支持系統時鐘函數
  5、支持字符串處理的頭文件
    1、<string>
      爲字符串類型提供支持和定義
    2、<cctype>
      單字節字符類別
    3、<cwctype>
      多字節字符類別
    4、<cstring>
      爲處理非空字節序列和內存塊提供函數,這不同於對用的標準的c庫頭文件, 幾個c樣式字符串的一般c庫函數被返回值爲const和非const的函數對替代了
    5、<cwchar>
      爲處理執行I/O和轉換多字節序列提供函數,這不同於對應的標準c庫頭文件
    6、<cstdlib>
      爲把單字節字符串轉換爲數值、在多字節字符和多字節字符串之間提供函數
  6、定義容器類的模板的頭文件
    1、<vertor>
      定義vector序列模板,這是一個大小可以重新設置的數組類型,比普通的數組更安全,更靈活
    2、<list>
      定義list序列模板,這是一個序列的鏈表,常常在任意位置插入和刪除元素
    3、<deque>
      定義deque序列模板,支持在開始和結尾的高效插入和刪除操作
    4、<queue>
      爲隊列(先進先出)數據結構定義序列適配器queue和priority_queue
    5、<stack>
      爲堆棧(後進先出)數據結構定義序列適配器stack
    6、<map>
      map是一個關聯容器類型,允許根據鍵值是唯一的,且按照升序存儲。
    7、<set>
      set是一個關聯容器類型,用於以升序方式存儲唯一值。
    8、<bitset>
      爲固定長度的位序列定義bitset模板,它可以看做固定長度緊湊型bool數組
  7、支持迭代器的頭文件
    1、<iterator>
      給迭代器提供定義和支持
  8、有關算法的頭文件
    1、<algorithm>
      提供一組給予算法的函數,包括置換、排序、合併和搜索
    2、<cstdlib>
      聲明C標準庫函數bsearch()和qsort(),進行搜索和排序
    3、<ciso646>
      允許在代碼中使用and代替&&
  9、有關數值操作的頭文件
    1、<complex>
      支持複雜數值的定義和操作
    2、<valarray>
      支持數值矢量的操作
    3、<numeric>
      在數值序列上定義一組一般數學操作
    4、<cmath>
      這是c數學庫,其中還附加了重載函數,以支持c++約定
    5、<cstdlib>
      提供的函數可以提取整數的絕對值,對整數進行取餘數操作
  10、有關本地化的頭文件
    1、<locale>
      提供的本地化包含字符類別,排序序列以及貨幣和日期表示
    2、<clocale>
      對本地化提供c樣式支持

    將上面做成了pdf類似框架圖的格式

大致的瞭解了一下標準庫;後面再詳細所stl

    



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章