亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

STL——map之各種容器的特點

發布時間:2020-08-10 18:06:16 來源:網絡 閱讀:684 作者:小止1995 欄目:編程語言

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

 mymap.insert ( std::pair<char,int>('a',100) );
  mymap.insert ( std::pair<char,int>('z',200) );

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


數據的查找(包括判定這個關鍵字是否在map中出現)

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

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

這里給出三種數據查找方法

第一種:用count函數來判定關鍵字是否出現,其缺點是無法定位數據出現位置,由于map的特性,一對一的映射關系,就決定了count函數的返回值只有兩個,要么是0,要么是1,出現的情況,當然是返回1了

第二種:用find函數來定位數據出現位置,它返回的一個迭代器,當數據出現時,它返回數據所在位置的迭代器,如果map中沒有要查找的數據,它返回的迭代器等于end函數返回的迭代器。


數據的清空與判空

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

 

數據的刪除

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

注:

List特點:元素有放入順序,元素可重復 

Set特點:元素無放入順序,元素不可重復(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的HashCode決定的,其位置其實是固定的) 

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

List接口有三個實現類:LinkedList,ArrayList,Vector 

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

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

Set接口有兩個實現類:HashSet(底層由HashMap實現),LinkedHashSet 

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

Query接口有一個實現類:LinkList 

Map接口有三個實現類:HashMap,HashTable,LinkeHashMap 

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

SortedMap有一個實現類:TreeMap 

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

set 一般無序不重復.map kv 結構 list 有序。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐业县| 成安县| 辽源市| 宜章县| 客服| 孟村| 遵化市| 游戏| 台东县| 留坝县| 徐闻县| 太湖县| 长宁区| 镇远县| 富裕县| 习水县| 大安市| 通渭县| 嘉善县| 阳江市| 巧家县| 富平县| 宽甸| 井陉县| 乌兰察布市| 碌曲县| 长春市| 平定县| 本溪| 那坡县| 襄樊市| 明溪县| 梅河口市| 安国市| 西昌市| 桂东县| 阳高县| 吴忠市| 新宁县| 抚顺市| 崇阳县|