国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

文章標(biāo)題STL中vector,Map,Set的實(shí)現(xiàn)原理

2019-11-06 06:17:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

vector的數(shù)據(jù)安排以及操作方式,與array非常類似,兩者唯一的區(qū)別是空間運(yùn)用的靈活性,array是靜態(tài)空間,一旦配置了就不能改變,如果你想要大一點(diǎn)的空間,就必須首先配置一塊新空間,然后將原來(lái)的元素一一復(fù)制進(jìn)來(lái),再把原來(lái)的空間釋放給系統(tǒng)。但是vector是動(dòng)態(tài)空間,隨著元素的增加,它的內(nèi)部機(jī)制會(huì)自行擴(kuò)充空間以容納新元素,因此vector的運(yùn)用對(duì)于內(nèi)存的合理利用與運(yùn)用的靈活性有很大的幫助,我們?cè)僖膊槐匾驗(yàn)楹ε驴臻g不足而一開(kāi)始要求一個(gè)大塊頭的array了,我們可以安心使用vector,隨便使用多大空間都可以

vector的實(shí)現(xiàn)技術(shù),關(guān)鍵在于其對(duì)大小的控制以及重新配置時(shí)的數(shù)據(jù)移動(dòng)效率,一旦vector的舊有空間滿載,如果客戶端每新增一個(gè)元素,vector的內(nèi)部只是擴(kuò)充一個(gè)元素的空間,實(shí)為不智,因?yàn)樗^擴(kuò)充空間,都是配置新空間,復(fù)制原來(lái)內(nèi)容,釋放舊空間所需要的時(shí)間很多,那么應(yīng)該怎樣配置空間呢,接下來(lái)再說(shuō)。

并且vector維護(hù)的是一個(gè)連續(xù)線性空間,所以支持vector隨機(jī)存取

注意:

vector動(dòng)態(tài)增加大小時(shí),并不是在原空間之后持續(xù)新空間(因?yàn)楦緹o(wú)法保證原空間之后尚有可供配置的空間),而是以原大小的兩倍另外配置一塊較大的空間,然后將內(nèi)容拷貝過(guò)來(lái),然后才開(kāi)始在原內(nèi)容之后構(gòu)造新元素,并釋放原空間,因此,一旦引起空間重新配置,指向原vector的所有迭代器都失效了,這是程序員易犯的一個(gè)錯(cuò)誤,務(wù)必小心

Map

Map是關(guān)聯(lián)容器,以鍵值對(duì)的形式進(jìn)行存儲(chǔ),方便進(jìn)行查找,關(guān)鍵詞起到索引的作用,值則表示與索引相關(guān)聯(lián)的數(shù)據(jù),以紅黑樹(shù)的結(jié)構(gòu)實(shí)現(xiàn),插入刪除等操作都可以在O(log n)時(shí)間內(nèi)完成

Map基本操作:

  1.map


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岱山县| 宿迁市| 马关县| 博爱县| 南部县| 中阳县| 磐安县| 松桃| 长乐市| 洛南县| 临漳县| 合江县| 勐海县| 兰坪| 金阳县| 墨脱县| 台江县| 嵊州市| 横山县| 肇庆市| 酉阳| 京山县| 乌恰县| 包头市| 汉沽区| 涞水县| 通化县| 长乐市| 怀柔区| 监利县| 卓资县| 邯郸县| 德令哈市| 固原市| 安乡县| 霸州市| 杭锦后旗| 屯昌县| 安西县| 无极县| 托里县|