multimap和map的不同之处在于前者允许重复键值的元素出现。
1 /*关于C++STL中mulitmap的学习,与map不同的是,multimap允许插入重复键值的元素*/ 2 #include <map> 3 #include <string> 4 #include <iostream> 5 using namespace std; 6 7 void print(multimap<string,double> m); 8 9 int main() 10 { 11 //创建multimap对象,当前没有元素 12 multimap<string,double> m; 13 14 //插入元素 15 m.insert(pair<string,double>("Jack",300.5));//其中pair是一种模板类,表示一种元素对 16 m.insert(pair<string,double>("Kity",200)); 17 m.insert(pair<string,double>("Memi",500)); 18 19 //插入重复元素 20 m.insert(pair<string,double>("Jack",300.5)); 21 22 print(m); 23 24 //删除单个多余元素 25 m.erase("Jack"); 26 cout<<"删除键值为Jack的元素 "; 27 print(m); 28 29 /*查找元素,由于存在重复的键值,所以find()方法只返回重复键值中的第一个元素的迭代器的位置,如果没有则 30 返回end()迭代器的位置*/ 31 if(m.find("Jack") == m.end()) cout<<"没有找到键值为Jack的元素 "; 32 if(m.find("Memi") != m.end()) cout<<"找到键值为Memi的元素 "; 33 34 return 0; 35 } 36 37 void print(multimap<string,double> m) 38 { 39 //使用前向迭代器遍历多重映照容器 40 multimap<string,double>::iterator it; 41 for(it=m.begin(); it != m.end(); it++){ 42 cout<<(*it).first<<":"<<(*it).second<<endl; 43 } 44 }