版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第C++中的STL中map用法詳解(零基礎(chǔ)入門)cout"身份證號(hào)123456的人叫"node[123456]endl;
cout"身份證號(hào)123457的人叫"node[123457]endl;
cout"身份證號(hào)123458的人叫"node[123458]endl;
輸出為:
身份證號(hào)123456的人叫張三
身份證號(hào)123457的人叫張三
身份證號(hào)123458的人叫李四
其中,pair定義了一個(gè)鍵值對(duì),對(duì)應(yīng)map的key和value。
3.2刪除數(shù)據(jù)
刪除數(shù)據(jù)使用到map的erase和clear方法,來看一下例子:
#includeiostream
#includemap//頭文件
#includestring
usingnamespacestd;
intmain(){
mapint,stringnode;//定義變量
node[123456]="張三";
node[123457]="李四";
node[123458]="王五";
cout"size="node.size()endl;
//1.使用key刪除
node.erase(123456);//刪除key=123456的節(jié)點(diǎn)
cout"size="node.size()endl;
//2.使用迭代器刪除
mapint,string::iteratoriter=node.find(123457);
node.erase(iter);
cout"size="node.size()endl;
//3.清空整個(gè)容器
node.clear();
cout"size="node.size()endl;
}
輸出為:
size=3
size=2
size=1
size=0
其中,clear方法表示清空容器,size方法表示獲取容器大小。
3.3修改數(shù)據(jù)
修改數(shù)據(jù)僅能修改value的值,key是不能修改的,可以通過增加和刪除來實(shí)現(xiàn)修改key。
#includeiostream
#includemap//頭文件
#includestring
usingnamespacestd;
intmain(){
mapint,stringnode;//定義變量
node[123456]="張三";
cout"身份證號(hào)123456的人叫"node[123456]endl;
node[123456]="李四";
cout"身份證號(hào)123456的人叫"node[123456]endl;
輸出為:
身份證號(hào)123456的人叫張三
身份證號(hào)123456的人叫李四
3.4查找數(shù)據(jù)
查找數(shù)據(jù)通過find函數(shù)來實(shí)現(xiàn),如下所示:
#includeiostream
#includemap//頭文件
#includestring
usingnamespacestd;
intmain(){
mapint,stringnode;//定義變量
node[123456]="張三";
node[123457]="李四";
node[123458]="王五";
mapint,string::iteratoriter=node.find(123456);
if(iter!=node.end()){
cout"身份證號(hào)123456的人叫"iter-secondendl;
輸出為:
身份證號(hào)123456的人叫張三
find方法返回的是map的迭代器。
3.5遍歷元素
遍歷元素使用迭代器的方式,如下所示:
#includeiostream
#includemap//頭文件
#includestring
usingnamespacestd;
intmain(){
mapint,stringnode;//定義變量
node[123456]="張三";
node[123457]="李四";
node[123458]="王五";
mapint,string::iteratoriter;//定義迭代器iter
for(iter=node.begin();iter!=node.end();++iter){
cout"身份證號(hào)"iter-first"的人叫"iter-secondendl;
輸出為:
身份證號(hào)123456的人叫張三
身份證號(hào)123457的人叫李四
身份證號(hào)123458的人叫王五
其中,使用迭代器iter遍歷容器,可以將迭代器理解為一個(gè)存儲(chǔ)了key和value的一個(gè)結(jié)構(gòu),first對(duì)應(yīng)key,second對(duì)應(yīng)value。
3.6其它方法
(1)swap函數(shù)
交換兩個(gè)map容器的內(nèi)容,map容器的類型必須相同,例如:
#includeiostream
#includemap//頭文件
#includestring
usingnamespacestd;
intmain(){
mapint,stringnode1;//定義變量
mapint,stringnode2;
node1[11]="張三";
node1[12]="李四";
node2[21]="王五";
node2[22]="趙六";
node2[23]="孫七";
node1.swap(node2);
mapint,string::iteratoriter;
cout"node1:"endl;
for(iter=node1.begin();iter!=node1.end();++iter){
cout"key="iter-first"value="iter-secondendl;
cout"node2:"endl;
for(iter=node2.begin();iter!=node2.end();++iter){
cout"key="iter-first"value="iter-secondendl;
輸出為:
node1:
key=21value=王五
key=22value=趙六
key=23value=孫七
node2:
key=11value=張三
key=12value=李四
(2)max_size
返回當(dāng)前容器的可以容納的最大元素個(gè)數(shù),來看一個(gè)例子。
#includeiostream
#includemap//頭文件
#includestring
usingnamespacestd;
intmain(){
mapint,stringnode;//定義變量
cout"max_size="node.max_size()endl;
node[11]="張三";
cout"max_size="node.max_size()endl;
node[12]="李四";
cout"max_size="node.max_size()endl;
node[13]="王五";
cout"max_size="node.max_size()endl;
}
輸出為:
max_size=128102389400760775
max_size=128102389400760775
max_size=128102389400760775
max_size=128102389400760775
(3)rbegin和rend
rbegin和rend為反向迭代器,即:rbegin指向最后一個(gè)元素,rend指向第一個(gè)元素的前一個(gè)位置,來看一個(gè)例子。
#includeiostream
#includemap//頭文件
#includestring
usingnamespacestd;
intmain(){
mapint,stringnode;//定義變量
node[11]="張三";
node[12]="李四";
node[13]="王五";
mapint,string::reverse_iteratoriter;
for(iter=node.rbegin();iter!=node.rend();++iter){
cout"key="iter-first"value="iter-secondendl;
}
輸出為:
key=13value=王五
key=12value=李四
key=11value=張三
注意:迭代器需要使用反向迭代器。
(4)lower_bound和upper_bound
#includeiostream
#includemap//頭文件
#includestring
usingnamespacestd;
intmain(){
mapint,stringnode;//定義變量
node[20]="張三";
node[15]="李四";
node[12]="王五";
mapint,string::iteratoriter=node.lower_bound(14);
cout"key="iter-first"value="iter-secondendl;
iter=node.upper_bound(12);
cout"key="iter-first"value="iter-secondendl;
}
輸出結(jié)果為:
key=15value=李四
key=15value=李四
(5)equal_range
#includeiostream
#includemap//頭文件
#includestring
usingnamespacestd;
intmain(){
mapint,stringnode;//定義變量
node[12]="張三";
node[15]="李四";
node[20]="王五";
pairmapint,string::iterator,mapint,string::iteratorp=node.equal_range(15);
cout"key1="p.first-fi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院入住老人衣物洗滌與保養(yǎng)制度
- 2026年永康市信訪局工作人員招聘?jìng)淇碱}庫(kù)及參考答案詳解1套
- 2026年紹興市外服派駐越城機(jī)關(guān)單位景點(diǎn)講解員招聘?jìng)淇碱}庫(kù)完整答案詳解
- 2026年漯河市郾城區(qū)事業(yè)單位人才引進(jìn)備考題庫(kù)及1套參考答案詳解
- 2026年泉州市醫(yī)學(xué)會(huì)招聘工作人員的備考題庫(kù)附答案詳解
- 公共交通行業(yè)服務(wù)質(zhì)量評(píng)價(jià)制度
- 中國(guó)礦業(yè)大學(xué)(北京)2026年度校聘非教師崗位招聘?jìng)淇碱}庫(kù)完整答案詳解
- 2026年漯河市氣象局人才引進(jìn)備考題庫(kù)及完整答案詳解一套
- 中國(guó)熱帶農(nóng)業(yè)科學(xué)院湛江實(shí)驗(yàn)站2026年第一批公開招聘工作人員備考題庫(kù)完整參考答案詳解
- 企業(yè)員工招聘錄用管理制度
- 2026年蘇州高博軟件技術(shù)職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題帶答案解析
- 2026年張家界航空工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試參考題庫(kù)附答案詳解
- 北師大版(2024)三年級(jí)數(shù)學(xué)上冊(cè) 期末專項(xiàng)復(fù)習(xí)一-數(shù)與代數(shù)(含答案)
- 校長(zhǎng)在期末教師大會(huì)上精彩發(fā)言:2026先善待自己再照亮學(xué)生的路
- 2026屆1月浙江鎮(zhèn)海中學(xué)首考模擬英語試卷
- 重慶酒吧市場(chǎng)行業(yè)分析報(bào)告
- 優(yōu)衣庫(kù)的論文
- 《企業(yè)會(huì)計(jì)準(zhǔn)則應(yīng)用指南(2025年版)》
- 請(qǐng)做飯人員合同協(xié)議
- 學(xué)生體檢結(jié)果反饋家長(zhǎng)通知制度
- 雨課堂學(xué)堂在線學(xué)堂云《C語言程序設(shè)計(jì)精髓(哈工 )》單元測(cè)試考核答案
評(píng)論
0/150
提交評(píng)論