C++中模板,是相當(dāng)重要的一部分,前面提到過一些基礎(chǔ),關(guān)于模板中需要注意的問題,會(huì)在最近整理出來(lái),今天想說(shuō)的,是由模板引出的標(biāo)準(zhǔn)模板庫(kù)。
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、奉化ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的奉化網(wǎng)站制作公司
當(dāng)初經(jīng)常會(huì)被推薦看《STL源碼剖析》這本書,聽說(shuō)很厲害,是C++高手都需要走過的路,可一直都不知道STL是什么,也一直忘記去查,今天整理出來(lái)的一些東西,最起碼可以讓未了解過這方面的童鞋認(rèn)識(shí)一下。
C++標(biāo)準(zhǔn)模板庫(kù),即STL:Standard Template Lib,STL的產(chǎn)生,是必然的。在長(zhǎng)期的編碼過程中,一些程序員發(fā)現(xiàn),有一些代碼經(jīng)常用到,而且需求特別穩(wěn)定,于是,各大公司就在出售自己的IDE環(huán)境的同時(shí),將這些代碼打包一起銷售,之后,這些大公司就達(dá)成共識(shí),認(rèn)為應(yīng)該講這部分代碼進(jìn)一步統(tǒng)一規(guī)范,于是,就形成了一套標(biāo)準(zhǔn)模板,也就慢慢演變成了現(xiàn)在的STL。
C++標(biāo)準(zhǔn)模板庫(kù)是一個(gè)相當(dāng)龐大的家族,今天,提到的是一些常用的部分,拿出來(lái)和大家分享。其他的使用方法,與今天要提到的這些都特別相似,很多程序員在開發(fā)項(xiàng)目的時(shí)候,都是隨用隨學(xué)?,F(xiàn)在就進(jìn)入今天的正題。
vector向量:頭文件:#include
vector的本質(zhì)是對(duì)數(shù)組的分裝,可以認(rèn)為它是一個(gè)數(shù)組,不過相對(duì)數(shù)組功能更強(qiáng)大,根據(jù)存儲(chǔ)的元素個(gè)數(shù),自動(dòng)的變長(zhǎng)或者縮短,特點(diǎn):讀取能在常數(shù)時(shí)間完成
在VS2013環(huán)境下,可以簡(jiǎn)單驗(yàn)證一下。
其中,size是該向量當(dāng)中現(xiàn)有元素個(gè)數(shù),capacity是該向量所能容納最多數(shù)組元素
初始化vector對(duì)象的方式:
1、vector
2、vector
3、vector
4、vector
向量常用函數(shù):
empty()----->判斷向量是否為空<空返回true,非空返回fause>
begin()----->返回向量迭代器首元素
end()----->返回向量迭代器末元素的下一個(gè)元素
clear()----->清空向量
front()----->第一個(gè)數(shù)據(jù)
back()----->最后一個(gè)數(shù)據(jù)
size()----->獲得向量中數(shù)據(jù)大小
push_back(elem)----->將數(shù)據(jù)插入向量尾
pop_back()----->刪除向量尾部數(shù)據(jù)
既然說(shuō),向量是數(shù)組的封裝,那么,無(wú)法避免的就要考慮到它的遍歷問題。
向量遍歷有兩種方式:
一、按照數(shù)組形式遍歷
for(int i = 0;i { cout< } 二、使用迭代器 向量迭代器的定義方式如下: vector 鏈表模板:list 頭文件:#include 特點(diǎn):數(shù)據(jù)插入速度快 使用方法:與向量使用方法基本相同, 有push、insert、begin、end等函數(shù),也可通過迭代器進(jìn)行訪問 值得注意的是,list不可以通過數(shù)組的方式進(jìn)行訪問 同樣給出list遍歷的代碼,如下: 映射模板:map 頭文件: #include map中鍵(key)與值(value)是一一對(duì)應(yīng)的,即成對(duì)出現(xiàn),通過關(guān)鍵字pair定義若干對(duì)key和value,再通過insert函數(shù)插入到map中。 用迭代器遍歷map時(shí),不可以對(duì)迭代器前加*直接訪問 給出map遍歷的代碼,如下: 除此之外,ma元素的數(shù)組訪問,和簡(jiǎn)單的數(shù)組也是有不同的,比如下面這段代碼。 int main(void)
{
vector
int main(void)
{
list
int main(void)
{
map
map
文章題目:C++模板引出的標(biāo)準(zhǔn)模板庫(kù)----->初涉
URL分享:http://weahome.cn/article/gecihs.html