C++標(biāo)準(zhǔn)庫簡介
首先為了考慮通用性,如果用一種新的標(biāo)準(zhǔn)導(dǎo)致原有的代碼不能用,那將是一件得不償失的事情。
所以為了減輕我們的負擔(dān),是程序員的開發(fā)變得簡單,標(biāo)準(zhǔn)委員會決定為包裝了std的那部分標(biāo)準(zhǔn)庫構(gòu)建新的文件名,生成新的頭文件名的方法就是
對于C++頭文件名,去掉頭文件名后的.h
<iostream.h>---<iostream>
<complex.h> ----<complex>
對于C頭文件名,在每個名字前面加上c
<string.h>-----<cstring>
<stdlib.h> ------<cstdlib>
原有C++頭文件的未來:
1.C++頭文件名如<iostream.h>將會繼續(xù)被使用,盡管它們不在提倡范圍之內(nèi),但是這些頭文件的內(nèi)容不命名空間std中。
2.新的C++頭文件如<iostream>所包含的基本功能和對應(yīng)的就C++頭文件相同,但是它們的內(nèi)容卻在命名空間std中。
3.就的C頭文件如<string.h>繼續(xù)使用,但是這些頭文件的內(nèi)容不在std中。
4.具有C頭文件功能的新C++頭文件<cstring>實現(xiàn)和原有C頭文件相同的功能,但是內(nèi)容在std中。
整個融合后新C++標(biāo)準(zhǔn)庫有以下組件:
1.標(biāo)準(zhǔn)C庫...<cstring>,<cstdlib>等等
2.I/O流技術(shù),和傳統(tǒng)的I/O流技術(shù)相比,它已經(jīng)模版化了
3.string對象。這里我要著重講一下
在原有的C頭文件<string.h>,是基于char*的字符串處理函數(shù),
而在std命名空間中,或者說新的C++標(biāo)準(zhǔn)庫中,或者說<string>中,
或者說<cstring>[說法錯誤,為什么錯誤?呵呵,想想就明白了,它是C頭文件的std]
它是一個類,一個string類,一個基于basic_string<char>的類
typedef base_string <char> string
4.容器,標(biāo)準(zhǔn)庫提供了vector,list,deque,queue,stack,map,set,multimap等等
5.算法,算法將容器的內(nèi)容當(dāng)作序列。
6.所有的庫中一切幾乎都是模版,I/O是模板,string是模版,vector是模板,complex是模版。