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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STL学习笔记5--map and multimap

發(fā)布時(shí)間:2023/12/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STL学习笔记5--map and multimap 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Maps是一種關(guān)聯(lián)式容器,包含“關(guān)鍵字/值”對(duì)。?Multimaps和maps很相似,但是MultiMaps允許重復(fù)的元素。

  簡(jiǎn)單介紹:

1、聲明,首先包含頭文件 “map”

map <int,string> test1,test2;// map <int,string>::iterator it1,it2;//迭代器multimap <int,string> test3;multimap <int,string>::iterator it3;

?

2、插入數(shù)據(jù),可使用三種方法:

  第一種,使用pair函數(shù)

   test1.insert(pair<int,string>(1,"song"));test1.insert(pair<int,string>(2,"zhang"));test1.insert(pair<int,string>(3,"wang"));

  第二種,使用value_type類型

   test1.insert(map<int,string>::value_type(4,"qian"));test1.insert(map<int,string>::value_type(5,"sun"));

  第三種,使用數(shù)組方式,,可以覆蓋原來數(shù)據(jù),前兩中不能改變數(shù)據(jù),如果存在則插入失敗

test1[6] = "mao";test1[7] = "guang";

  前兩種情況,插入失敗后可以通過以下方法檢查

//測(cè)試是否插入成功pair<map<int,string>::iterator,bool> insert_Pair;insert_Pair = test1.insert(pair<int,string>(1,"Replace"));if (insert_Pair.second == true){cout<<"insert successfully"<<endl;}else{cout<<"insert failure"<<endl;}

3、遍歷數(shù)據(jù),可使用以下幾種方法

  第一,正向遍歷

for (it1 = test1.begin();it1 != test1.end();it1++){cout<<it1->first<<"-----" << it1->second<<endl;}

  第二,逆向遍歷,使用反向迭代器

  cout<<"反向迭代器"<<endl;//rbegin()指向最后一個(gè)元素,rend()指向第一個(gè)元素前面,這里++是指往前走一個(gè)位置map<int,string>::reverse_iterator reverseIte;for (reverseIte = test1.rbegin();reverseIte != test1.rend();reverseIte++){cout<<reverseIte->first<<"-----" << reverseIte->second<<endl;}

  第三,使用數(shù)組進(jìn)行遍歷

  //使用數(shù)組方式進(jìn)行遍歷for (int i = 1;i <= test1.size();i++){cout<<i<<"-----"<<test1[i]<<endl;}

4、查找和判斷

  第一,使用count進(jìn)行判斷

//count,判斷int i=1;for (it1 = test1.begin();it1 != test1.end();i++,it1++){cout<<i;if (test1.count(i)>0)//元素存在 {cout<<"is a element of map"<<endl;}else{cout<<"is not a element of map"<<endl;}}

  第二,使用find判斷

  it2 = test1.find(6);//查找if (it2 != test1.end()){cout<<"find it:"<<it2->first<<"---"<<it2->second<<endl;}else{cout<<"not find it"<<endl;}

5、刪除元素

//刪除元素it2 = test1.find(2);test1.erase(it2);

?

?

這些操作基本上都和set的差不多,好多函數(shù)一模一樣。

  

轉(zhuǎn)載于:https://www.cnblogs.com/songliquan/p/3341210.html

總結(jié)

以上是生活随笔為你收集整理的STL学习笔记5--map and multimap的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。