C++STL容器----map与multimap容器

一、定义

Map是STL [1]  的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道

《百度百科》

简单来说,对于数组来说,索引就相当于键值,s[i]就相当于映照的数据.map中不允许重复的键值,multimap允许重复的键值

C++STL容器----map与multimap容器_第1张图片

二、用法

由于map容器也是使用红黑树存取,所以它的用法与set一样在这里就直接写出代码

三、map代码实现

#include
#include
#include
using namespace std;
int main(int  argc,char *argv[])
 {
  mapm;//定义map容器,其中键值为int型,映照的数据为char 型
  m[25]='m';
  m[28]='k';
  m[30]='a';
    m.erase(28);//删除键值为28的元素
   map::iterator it;//定义迭代器
   for(it=m.begin();it!=m.end();it++)
   {
     cout<<(*it).first<<" :"<<(*it).second<::reverse rit;
   for(rit=m.rbegin();rit!=m.rend();rit++)
   {
    cout<<(*rit).first<<" :"<<(*rit).second<

实现结果

C++STL容器----map与multimap容器_第2张图片

                           multimap

由于multimap可以插入重复的键值,所以插入,删除,查找都与map的用法不相同

四、multimap代码实现

 一、实现重复插入

#include
#pragma warning(disable:4786)
#include
#include
using namespace std;
int main(int argc,char *argv[])
{   multimap m;
   m.insert(pair("jack",300.5));
   //向multimap插入数据
   m.insert(pair("kity",200));
   m.insert(pair("Memi",500));
   m.insert(pair("jack",300.5));//插入重复的数据
    multimap::iterator it;
    for(it=m.begin();it!=m.end();it++)
    {
      cout<<(*it).first<<" :"<<(*it).second<

实现结果:

C++STL容器----map与multimap容器_第3张图片

二、实现删除

#include
#include
#include
using namespace std;
int main(int argc,char *argv[])
{
  multimapm;
  //插入相关的数据
  m.insert(pair("jack",300.5) );
  m.insert(pair("Tom",200));
  m.insert(pair("jack",100.5) );
  m.insert(pair("Memi",500));
  multimap::iterator it;
  for(it=m.begin();it!=m.end();it++)
  {
    cout<<(*it).first<<" :"<<(*it).second<

实现结果: 

C++STL容器----map与multimap容器_第4张图片

 

 

 

你可能感兴趣的:(数据结构)