我是靠谱客的博主 甜美小霸王,最近开发中收集的这篇文章主要介绍[C++ 从入门到放弃-06]C++STL之multimap多重映照容器1. multimap创建、元素插入和元素遍历2. 元素删除3. 元素查找,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
在[C++ 从入门到放弃-05 ]C++STL之map映照容器 中指出map不允许插入的元素键值相同。而本文要说明的multimap是允许插入重复的键值的。所以multimap与map是十分相似的。但在元素插入、删除、查找会存在一些不同,毕竟multimap是支持重复键值的。本文只讲述multimap与map不同的地方。
1. multimap创建、元素插入和元素遍历
#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;
}
2. 元素删除
multimap的删除操作,可以删除重复的键值。
#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;
}
3. 元素查找
由于multimap存在重复的键值,所以find()方法返回重复键值中的第一个元素的迭代器位置,如果没有找到该键值,则返回end()的位置。
#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;
}
最后
以上就是甜美小霸王为你收集整理的[C++ 从入门到放弃-06]C++STL之multimap多重映照容器1. multimap创建、元素插入和元素遍历2. 元素删除3. 元素查找的全部内容,希望文章能够帮你解决[C++ 从入门到放弃-06]C++STL之multimap多重映照容器1. multimap创建、元素插入和元素遍历2. 元素删除3. 元素查找所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复