C++STL之multimap多重映照容器
2015-10-14 23:42
495 查看
multimap与map基本相似,两者的区别在与,multimap允许插入重复的键值。由于允许插入重复的减值,所以multimap与map的元素插入、删除、查找有一些不同。
*multimap对象的创建、元素的插入
可以插入重复的键值
*元素的删除与查找
由于multimap存在重复的键值,所以find()方法返回重复键值中的第一个元素的迭代器位置,如果没有找到该键值,则返回end()的位置
multimap的删除操作,可以删除重复的键值。
*下边的程序是元素的查找
OK,到此multimap就介绍完了。基本上足够使用了
*multimap对象的创建、元素的插入
可以插入重复的键值
#pragma warning(disable:4786) #include<iostream> #include<string> #include<map> using namespace std; int main() { multimap<string, double> m; m.insert(pair<string, double> ("CaiCai", 90.5)); m.insert(pair<string, double> ("Ningbo", 88.5)); m.insert(pair<string, double> ("Zhejiang", 45.3)); m.insert(pair<string, double> ("Zhejiang", 95.5)); //使用前向迭代器遍历 multimap<string, double>::iterator it; for(it = m.begin(); it != m.end(); it ++) cout<<(*it).first<<" : "<<(*it).second<<endl; return 0; }
*元素的删除与查找
由于multimap存在重复的键值,所以find()方法返回重复键值中的第一个元素的迭代器位置,如果没有找到该键值,则返回end()的位置
multimap的删除操作,可以删除重复的键值。
#pragma warning(disable:4786) #include<iostream> #include<string> #include<map> using namespace std; int main() { multimap<string, double> m; m.insert(pair<string, double> ("CaiCai", 90.5)); m.insert(pair<string, double> ("Ningbo", 88.5)); m.insert(pair<string, double> ("Zhejiang", 45.3)); m.insert(pair<string, double> ("Zhejiang", 95.5)); //使用前向迭代器遍历 multimap<string, double>::iterator it; for(it = m.begin(); it != m.end(); it ++) cout<<(*it).first<<" : "<<(*it).second<<endl; m.erase("Zhejiang"); cout<<"The elements after deleted: "<<endl; for(it = m.begin(); it != m.end(); it ++) cout<<(*it).first<<" : "<<(*it).second<<endl; return 0; }
*下边的程序是元素的查找
#pragma warning(disable:4786) #include<iostream> #include<string> #include<map> using namespace std; int main() { multimap<string, double> m; m.insert(pair<string, double> ("CaiCai", 90.5)); m.insert(pair<string, double> ("Ningbo", 88.5)); m.insert(pair<string, double> ("Zhejiang", 45.3)); m.insert(pair<string, double> ("Zhejiang", 95.5)); //使用前向迭代器遍历 multimap<string, double>::iterator it; for(it = m.begin(); it != m.end(); it ++) cout<<(*it).first<<" : "<<(*it).second<<endl; //查找 cout<<endl<<"The searching result: "<<endl; it = m.find("Zhejiang"); if(it != m.end()) cout<<(*it).first<<" : "<<(*it).second<<endl; else cout<<"Not find it!"<<endl; it = m.find("Anhui"); if(it != m.end()) cout<<(*it).first<<" : "<<(*it).second<<endl; else cout<<"Not find it!"<<endl; return 0; }
OK,到此multimap就介绍完了。基本上足够使用了
相关文章推荐
- 浅析c++中的类型转换--reinterpret_cast
- 浅析c++中的类型转换--reinterpret_cast
- C语言之typedef int (*funcptr)()
- C语言文件打开和二进制打开方式的区别
- C++学习笔记(第一篇)
- 浅析c++中的类型转换--const_cast
- 浅析c++中的类型转换--const_cast
- C++文件(夹)选择对话框
- 剑指offer第十一题【二进制中1的个数】c++实现
- 编写程序求解: 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?打印出来?
- c++ primer第五版(中文)习题答案 第十章第四节第三小节-反向迭代器
- C语言:在屏幕上打印杨辉三角形
- 编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
- 从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号,使能够处理的输入行的长度没有限制
- 编写猜数字游戏
- 【面试题】C语言:根据A,B,C,D四人没人说得一句话,四句话仅有三句话正确,判断嫌疑犯
- [C++] Memory_stack_heap
- .编写折半查找函数。
- C++与JAVA的异同
- 打印杨辉三角问题