map映射

C++ STL中的map是以key排序的。

map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。在map内部所有的数据都是有序的,后边我们会见识到有序的好处。比如一个班级中,每个学生的学号跟他的姓名就存在著一对一映射的关系。

自动建立key - value的对应。key 和 value可以是任意你需要的类型。

 

map<string,double> money;

//插入

money.insert({(string)"JD",1});

money[s] = a;

 

 

附例题:https://codeforces.com/gym/101350/problem/M

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define mem(a) memset(a,0,sizeof(a))
 4 map<string,double> money;
 5 int main()
 6 {
 7     int t,c,n;
 8     char str[10000];
 9     string s;
10     double a;
11     scanf("%d",&t);
12     while(t--)
13     {
14         scanf("%d%d",&c,&n);
15         money.clear();
16         money.insert({(string)"JD",1});
17         for(int i = 0; i < c; i++)
18         {
19             scanf("%s",str);
20             scanf("%lf",&a);
21             s = str;
22             money[s] = a;
23         }
24         double ans = 0,b;
25         for(int i = 0; i < n; i++)
26         {
27             scanf("%lf",&b);
28             scanf("%s",str);
29             s = str;
30             ans += b*money[s];
31         }
32         printf("%.6f\n",ans);
33     }
34     return 0;
35 }
View Code

附博客:https://blog.csdn.net/sevenjoin/article/details/81943864

 

posted on 2019-08-02 18:24  By_布衣  阅读(136)  评论(0编辑  收藏  举报

导航