日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

map使用.xml

發布時間:2025/3/13 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 map使用.xml 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

map?是一種關聯容器,??提供一對一的關聯,?關聯的形式為:?KEY----VALUE?????關鍵字不重復。multimap與map類似,但是允許關鍵字重復即:關鍵字和與之對應的值關鍵字起到索引的作用,?在map中查找記錄?就是根據關鍵字查找關鍵字??和?值?可以是任意類型map?也可看做是??關鍵字映射的集合,?即,map中不可出現重復的關鍵字,每條映射的關鍵字都是不同的。??????????map?是基于紅黑樹結構的,其查找時間為LOG(N)如:map<int,?int?>???????????????//第一個為關鍵字,第二個為此關鍵字所對應的值?????一個關鍵字只對應一個值,?是一對一的映射關系map<CString,int>map<int,?CString>map<CString,CString>........

頭文件

 

#include?<map>??using?namespace?std;??//必須加上??

1?插入元素?

1)??insert函數插入

 

map<int,int>?idMap;??idMap.insert(pair<int,int>(1,1));??idMap.insert(map<int,int>::value_type(2,1));??用insert函數插入數據,在數據的插入上涉及到集合的唯一性這個概念,即當map中有這個關鍵字時,insert操作是插入數據不了的判斷是否插入成功

 

map<int,int>?idMap;??idMap.insert(pair<int,int>(1,1));??idMap.insert(map<int,int>::value_type(2,1));??pair<map<int,int>::iterator,bool>?InsertPair;??InsertPair=idMap.insert?(pair<int,int>(1,1));??if?(InsertPair.second==true)??{??cout<<"insert?successfully";??}else??cout<<"insert?failure";??2?)數組插入方式

 

map<int,int>?idMap;??idMap[1]=2;??用數組方式就不同了,它可以覆蓋以前該關鍵字對應的值但存在一個性能的問題。該方法會將每個插入值都賦為缺省值,然后再賦為顯示的值,如果元素是類對象,則開銷比較大。而用insert方法則可直接賦值為顯示值。

2?判斷是否存在

Returns?the?number?of?elements?in?a?map?whose?key?matches?a?parameter-specified?key.size_type?count(const?Key&?_Key )?const

1?if?the?map?contains?an?element?whose?sort?ke y?matches?the?parameter?key;?0?if?the?map?does?not ?contain?an?element?with?a?matching?key.

 

int?num=idMap.count(1);??if?(num==0)??{??cout<<"the?key?1?does?not?exist";??}else{??cout<<"exist";??}??

3?查找關鍵字

iterator?find(const?Key&?_Key ); const_iterator?find(const?Key&?_Key )?const;

 

map<int,int>::iterator?it;??it=idMap.find(2);??if?(it==idMap.end())??{??cout<<"can?not?find?2";??}else{??int?first=it->first;??int?second=it->second;??}??擴展:iterator?lower_bound(const?Key&?_Key ); const_iterator?lower_bound(const?Key&?_Key )?const; Returns?an?iterator?to?the?first?element?in?a?map?with?a?key?value?that?is?equal?to?or?greater?than?that?of?a?specified?key.

第一個等于或大于Key的元素

iterator?upper_bound(const?Key&?_Key ); const_iterator?upper_bound(const?Key&?_Key )?const; Returns?an?iterator?to?the?first?element?in?a?map?that?with?a?key?having?a?value?that?is?greater?than?that?of?a?specified?key.

第一個大于Key的元素

pair?<const_iterator,?const_iterator>?equal_range?(const?Key&?_Key )?const; pair?<iterator,?iterator>?equal_range?(const?Key&?_Key );A?pair?of?iterators?such?that?the?first?is?the?lower_bound?of?the?key?and?the?second?is?the?upper_bound?of?the?key.Equal_range函數返回一個pair,pair里面第一個變量是Lower_bound返回的迭代器,pair里面第二個迭代器是Upper_bound返回的迭代器,如果這兩個迭代器相等的話,則說明map中不出現這個關鍵字

 

p2?=?m1.equal_range(?4?);??//?If?no?match?is?found?for?the?key,??//?both?elements?of?the?pair?return?end(?)??if?(?(?p2.first?==?m1.end(?)?)?&&?(?p2.second?==?m1.end(?)?)?)??cout?<<?"The?map?m1?doesn't?have?an?element?"??<<?"with?a?key?less?than?40."?<<?endl;??else??cout?<<?"The?element?of?map?m1?with?a?key?>=?40?is:?"??<<?p2.first?->?first?<<?"."?<<?endl;??

4?大小,包含多少個元素

Returns?the?number?of?elements?in?the?map.size_type?size(?)?const;

 

int?nSize=idMap.size();??

5?遍歷

前向迭代器

 

map<int,int>::iterator?it;??for?(it=idMap.begin?();it!=idMap.end();it++)??{??cout<<it->first<<endl;??cout<<it->second<<endl;??}??

反向迭代器

 

map<int,int>::reverse_iterator?iter;??for?(iter=idMap.rbegin?();iter!=idMap.rend?();iter++)??{??cout<<iter->first<<endl;??cout<<iter->second<<endl;??}??

6?刪除

iterator?erase(iterator?_Where ); iterator?erase(iterator?_First,iterator?_Last ); size_type?erase(const?key_type&?_Key );

 

//迭代器刪除??map<int,int>::iterator?it;??it=idMap.find(1);??idMap.erase(it);??//關鍵字刪除??idMap.erase(1);??//成片刪除?或清空??idMap.erase(idMap.begin?(),idMap.end());??//清空??idMap.clear?();??

7?基本函數

 

C++?Maps是一種關聯式容器,包含“關鍵字/值”對??begin()??????????返回指向map頭部的迭代器??clear()?????????刪除所有元素??count()??????????返回指定元素出現的次數??empty()??????????如果map為空則返回true??end()????????????返回指向map末尾的迭代器??equal_range()????返回特殊條目的迭代器對??erase()??????????刪除一個元素??find()???????????查找一個元素??get_allocator()??返回map的配置器??insert()?????????插入元素??key_comp()???????返回比較元素key的函數??lower_bound()????返回鍵值>=給定元素的第一個位置??max_size()???????返回可以容納的最大元素個數??rbegin()?????????返回一個指向map尾部的逆向迭代器??rend()???????????返回一個指向map頭部的逆向迭代器??size()???????????返回map中元素的個數??swap()????????????交換兩個map??upper_bound()?????返回鍵值>給定元素的第一個位置??value_comp()??????返回比較元素value的函數??

示例:

 

map<int,vector<int>>??m_DianmingMap;??

 

AddDianmingMap(int?nXueqi,int?nXuehao)??{??//將此學生添加到已點名容器中??map<int,vector<int>>::iterator?it;??it=m_DianmingMap.find(nXueqi);??if?(it==m_DianmingMap.end?())?//先查找關鍵字有無此學期ID??{??//容器中不存在?則添加??vector<int>??int_Vec;??int_Vec.push_back(nXuehao);??m_DianmingMap[nXueqi]=int_Vec;??}else{//在查找?此學期中?有無此學號ID??vector<int>::iterator?itVec=find(it->second.begin?(),it->second.end(),m_nXuehaoID);??if(itVec==it->second.end())??{??//沒有此學生則添加??it->second.push_back(nXuehao);??}??}??return?TRUE;??}??




本文使用?書畫小說軟件?發布,內容與軟件無關,書畫小說軟件?更愜意的讀、更舒心的寫、更輕松的發布。

?

轉載于:https://www.cnblogs.com/shuilan0066/p/4031786.html

總結

以上是生活随笔為你收集整理的map使用.xml的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。