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