map容器

来源:互联网 发布:网络接口转换器 编辑:程序博客网 时间:2024/04/29 21:26
    Map容器
map类定义了一个关联容器,并且在容器中使用唯一的关键字来映射相应的值。

例如:
     A     0
            B     1
            C     2 
从本质上来说,关键字就是值的名字。在map对象中存储了一个值之后,就可以

通过关键字来获得它。map对象是一系列关键字/值的匹配对。
map的主要功能在于:只有你知道了一个值的关键字,就能够找到这个值。   例

如:
    定义一个map对象m,在该对象中使用人名作为关键字,并将每个人的电话号

码存储为值。那么可以使用
                      m[“张三”]
    表示张三的电话号码。
从前面的例子可以看出map类有一个非常优越的特点:关联数组。在普通的数组

中,索引是一个整数。而在关联数组中,索引是一个键,并且键可以是任意类型

的,可以是String、double、int类型,甚至可以是一些用户定义的类。
如: m[“张三”] = 8123456
定义一个map对象
 
             map<char, int>m;
定义一个map对象的迭代器
 
             map<char, int>::iterator p;
使用迭代器访问map
     
             p = m.begin();
             p++;
             p = m.end();
m.insert(pair<char, int> (‘A’, 0))

             p->first
             p->second查找map对象中的关键字
     
         p = m.find(‘H’) ;
         p -> first;
         p -> second;

简单程序的简单解释
#include <iostream>
#include <map>
#include <algorithm>
#include <queue>
using namespace std;
char map[12][12];
map<int,int>m;//定义一个map;
map<int,int>operator::mt;//定义一个迭代器;
map<string,int>m1;
map<int,string>m2;
map<string,string>m3;
int main()
{
  m3["王丽客"]="???";
  string ans;
  ans="王丽客";
  cout<<m3[ans]<<endl;
  m1["王丽客"]=1000;
  string ans;
  ans="王丽客";
  cout<<m3[ans]<<endl;
  for(int i=0;i<100;i++)
  {
      cin>>a;
      m[a]++;
  }
  for(mt=m.begin();mt!=m.end();mt++)
  cout<<mt->first<<mt->second<<endl;//下标和个数;
  m2[1]="zhuhao";
  cout<<m2[1]<<endl;
  first,second;
  struct node
  {
    int x,y;
  };
  queue<int>q;
  queue<char>q1;
  queue<string>q2;
  queue<node>  q3;//结构体变量;
  int          q4;

  1 2 3 4 5 6
  q.push(1);
  q.push(2);

  int ans=q.front();//从第一个开始输出;

    q.pop();//删除;

    node a,b;
    q3.push(a);
    q3.push(b);
    q.pop();
    q3.empty();//判断是否是空的;

 

    struct node
    {
        int x,y;
        bool friend oprerator<(node a,node b)//排序;
        {
            return a.x<b.x;//输出的时候按a>b输出;
        }
    }
    priority_queue<node> q;//声明优先队列;
}

 

0 0
原创粉丝点击