下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、c+標(biāo)準(zhǔn)庫關(guān)聯(lián)容器1 關(guān)聯(lián)容器定義 存儲對象集合的類型,支持通過鍵的高效拜訪。和挨次容器的本質(zhì)差別在于:挨次容器通過元素在容器中的位置挨次存儲和拜訪元素,而關(guān)聯(lián)容器卻是依賴鍵。map和是兩個基本的關(guān)聯(lián)容器類型,map以鍵值對的形式組織存儲元素,而set僅存儲鍵。 2 pair類型(在utility頭文件中定義) a)pair類型的操作: pair t1,t2 創(chuàng)建一個空的pair對象,兩個元素類型分離是t1和t2,值初始化; pair t1,t2 p1(v1,v2);創(chuàng)建一個pair對象,具有兩個元素v1和v2,類型分離是t1和t2; make_pair(v1,v2);以v1和v2作為值創(chuàng)建一
2、個pair對象,元素類型分離是v1和v2的類型; p1.first;返回值為v1; p1.second;返回值為v2; p1 小于運算遵循字典次序; p1 = p2;假如兩個pair對象的first成員和second成員依次相等,則兩個pair對象相等; 注:*pair類型屬于類模板。 3 關(guān)聯(lián)容器和挨次容器的操作區(qū)分 a)共有的操作: c t c t c(c2); c t c(b,e); 關(guān)系操作符; c.begin(); c.end(); c.rbegin(); c.rend(); size_type iterator const_iterator reverse_iterator con
3、st_reverse_iterator eree_type 存儲兩個迭代器差值的有符號整型,可為負(fù)數(shù) value_type 對于map,是pair 類型 reference value_type 的同義詞 const_reference 等效于 const value_type swap和賦值操作; 和erase操作; 容器大小的操作(除外); b)關(guān)聯(lián)容器不提供的操作: front,push_front,pop_front,back,push_back,pop_back 4 map類型 map類型可理解為關(guān)聯(lián)數(shù)組,關(guān)聯(lián)的本質(zhì)在于元素的值與某個特定的鍵相關(guān)聯(lián),而與元素的位置無關(guān)。 a)map對
4、象的定義: map k,v 創(chuàng)建一個空的map對象m,其鍵和值的類型分離為k,v; map k,v m(m2);創(chuàng)建m2的副本m,m必需具有和m2相同的鍵類型和值類型; map k,v m(b,e);創(chuàng)建一個map對象m,存儲迭代器b,e)標(biāo)志范圍內(nèi)的全部元素的副本,元素類型必需能轉(zhuǎn)換為pair const k,v ; 注:*鍵類型必需能夠定義 操作符。 b)map定義的類型: map k,v :key_type;鍵的類型 map k,v :mapp_type;元素的類型 map k,v :value_type;pair const map k,v :key_type,map k,v :map
5、ped_type 注:*map迭代器解引用生成pair const map k,v :key_type,map k,v :mapped_type 類型的對象,pair對象的值成員可以修改,但鍵成員不能修改; 5 map容器的操作 a)添加元素: m.insert(e);e為map的value_type類型的值。假如鍵e.first不存在,則添加一個值為e.second的值,假如存在,則m不變。該操作返回一個pair類型的對象,包含一個指向新添加元素的map迭代器,以及一個bool值,表示插入是否勝利; m.insert(b,e);將迭代器b和e標(biāo)示區(qū)間內(nèi)的全部元素插入到m中,所插入的元素必需為
6、m.value_typpe類型,返回vo; m.insert(iter,e);假如m中不存在鍵e.first,則在m中以iter為起點搜尋新元素的位置并插入,返回一個指向新添加元素的迭代器。 mzhu = 1;在map中查找鍵為zhu的元素,假如沒有,則插入一個新的鍵值對,鍵為zhu,值采納初始化,再將1賦給元素的值; b)查詢元素: m.count(k);返回m中k鍵浮現(xiàn)的次數(shù),返回值只能是0或1; m.(k);假如m中存在鍵為k的元素,則返回指向該元素的迭代器,否則,返回m.end(); c)刪除元素: m.erase(k);刪除m中鍵為k的元素,返回值為所刪除元素的個數(shù),只能是0或1,類
7、型為size_type; m.erase(p);刪除m中迭代器p所指向的元素,p所指向的元素必需存在,返回void; m.erase(b,e);刪除m中由迭代器b,e)標(biāo)示范圍內(nèi)的元素,b,e)必需是有效范圍,返回void。 6 set類型 set容器單單存儲鍵的集合。 a)set容器不支持的操作: set不支持下標(biāo)操作; 沒有定義mapped_type,value_type對應(yīng)的是key_type,即元素的類型; 與map一樣,set容器中的鍵也必需唯一,而且不能修改。 注:*set容器支持map的大部分的操作。 7 multimap和multiset a)元素的添加刪除: insert 操作每次都會添加一個元素; erase 帶有一個鍵參數(shù)的該操作將刪除擁有該鍵的全部元素,返回刪除的元素個數(shù),而帶有一個或一對迭代器參數(shù),則只刪除指定的元素,返回void。 b)查找元素: m.count,m.find() m.lower_bound(k) 返回一個指向鍵不小于k的元素的迭代器; m.upper_bound(k) 返回一個指向鍵大于k的第一個元素的迭代器; m.equal_range(k) 返回
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理裝修設(shè)計合同范本
- vr全景制作合同范本
- 光熱分包合同范本
- 運動休閑服裝項目可行性研究報告
- 2025年度建設(shè)工程交易服務(wù)中心建筑拆除工程合同
- 分期貨款合同范例
- 勞務(wù)及銷售合同范本
- 乙方包工合同范例
- 2025年度野生菌類采集與保護(hù)利用合同
- 保護(hù)乙方施工合同范例
- 2023電力行業(yè)無人機技術(shù)規(guī)范
- 鋁冶煉生產(chǎn)技術(shù)指標(biāo)元數(shù)據(jù)規(guī)范
- 家庭教育指導(dǎo)委員會章程
- 高三一本“臨界生”動員會課件
- 浙江省2023年中考科學(xué)真題全套匯編【含答案】
- 《公益性公墓管理章程》-
- C++面向?qū)ο蟪绦蛟O(shè)計雙語教程(第3版)課件全套 ch01Introduction-ch08Templates
- 小說標(biāo)題作用探究省名師優(yōu)質(zhì)課賽課獲獎?wù)n件市賽課一等獎?wù)n件
- dk膠原蛋白培訓(xùn)課件
- 短視頻拍攝時間計劃表
- 動物檢疫技術(shù)-動物檢疫處理(動物防疫與檢疫技術(shù))
評論
0/150
提交評論