真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

STL——map之各種容器的特點(diǎn)-創(chuàng)新互聯(lián)

Map是STL的一個關(guān)聯(lián)容器,它提供一對一(其中第一個可以稱為關(guān)鍵字,每個關(guān)鍵字只能在map中出現(xiàn)一次,第二個可能稱為該關(guān)鍵字的值)的數(shù)據(jù)處理能力,由于這個特性,它完成有可能在我們處理一對一數(shù)據(jù)的時候,在編程上提供快速通道。map內(nèi)部自建一顆紅黑樹(一種非嚴(yán)格意義上的平衡二叉樹),這顆樹具有對數(shù)據(jù)自動排序的功能,所以在map內(nèi)部所有的數(shù)據(jù)都是有序的

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、烏爾禾網(wǎng)站維護(hù)、網(wǎng)站推廣。
 mymap.insert ( std::pair('a',100) );
  mymap.insert ( std::pair('z',200) );

  std::pair::iterator,bool> ret;
  ret = mymap.insert ( std::pair('z',500) );if(ret.second==false) {
    std::cout <<"element 'z' already existed";
    std::cout <<" with a value of "<< ret.first->second <<'\n';
  }

數(shù)據(jù)的查找(包括判定這個關(guān)鍵字是否在map中出現(xiàn))

在這里我們將體會,map在數(shù)據(jù)插入時保證有序的好處。

要判定一個數(shù)據(jù)(關(guān)鍵字)是否在map中出現(xiàn)的方法比較多,這里標(biāo)題雖然是數(shù)據(jù)的查找,在這里將穿插著大量的map基本用法。

這里給出三種數(shù)據(jù)查找方法

第一種:用count函數(shù)來判定關(guān)鍵字是否出現(xiàn),其缺點(diǎn)是無法定位數(shù)據(jù)出現(xiàn)位置,由于map的特性,一對一的映射關(guān)系,就決定了count函數(shù)的返回值只有兩個,要么是0,要么是1,出現(xiàn)的情況,當(dāng)然是返回1了

第二種:用find函數(shù)來定位數(shù)據(jù)出現(xiàn)位置,它返回的一個迭代器,當(dāng)數(shù)據(jù)出現(xiàn)時,它返回數(shù)據(jù)所在位置的迭代器,如果map中沒有要查找的數(shù)據(jù),它返回的迭代器等于end函數(shù)返回的迭代器。

數(shù)據(jù)的清空與判空

清空map中的數(shù)據(jù)可以用clear()函數(shù),判定map中是否有數(shù)據(jù)可以用empty()函數(shù),它返回true則說明是空map

數(shù)據(jù)的刪除

Map mapStudent;
mapStudent.insert(pair(1,“student_one”));
mapStudent.insert(pair(2,“student_two”));
mapStudent.insert(pair(3,“student_three”));
//如果你要演示輸出效果,請選擇以下的一種,你看到的效果會比較好
//如果要刪除1,用迭代器刪除
map::iterator iter;
iter = mapStudent.find(1);
mapStudent.erase(iter);
//如果要刪除1,用關(guān)鍵字刪除
Int n = mapStudent.erase(1);//如果刪除了會返回1,否則返回0
//用迭代器,成片的刪除
//一下代碼把整個map清空
mapStudent.earse(mapStudent.begin(),mapStudent.end());
//成片刪除要注意的是,也是STL的特性,刪除區(qū)間是一個前閉后開的集合

注:

List特點(diǎn):元素有放入順序,元素可重復(fù)

Set特點(diǎn):元素?zé)o放入順序,元素不可重復(fù)(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的HashCode決定的,其位置其實(shí)是固定的)

Map特點(diǎn):元素按鍵值對存儲,無放入順序 (應(yīng)該知道什么是鍵值對吧!)

List接口有三個實(shí)現(xiàn)類:LinkedList,ArrayList,Vector

LinkedList:底層基于鏈表實(shí)現(xiàn),鏈表內(nèi)存是散亂的,每一個元素存儲本身內(nèi)存地址的同時還存儲下一個元素的地址。鏈表增刪快,查找慢

ArrayList和Vector的區(qū)別:ArrayList是非線程安全的,效率高;Vector是基于線程安全的,效率低

Set接口有兩個實(shí)現(xiàn)類:HashSet(底層由HashMap實(shí)現(xiàn)),LinkedHashSet

SortedSet接口有一個實(shí)現(xiàn)類:TreeSet(底層由平衡二叉樹實(shí)現(xiàn))

Query接口有一個實(shí)現(xiàn)類:LinkList

Map接口有三個實(shí)現(xiàn)類:HashMap,HashTable,LinkeHashMap

 HashMap非線程安全,高效,支持null;HashTable線程安全,低效,不支持null

SortedMap有一個實(shí)現(xiàn)類:TreeMap

其實(shí)最主要的是,list是用來處理序列的,而set是用來處理集的。Map是知道的,存儲的是鍵值對

set 一般無序不重復(fù).map kv 結(jié)構(gòu) list 有序。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前名稱:STL——map之各種容器的特點(diǎn)-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://weahome.cn/article/cssjpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部