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
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
附博客:https://blog.csdn.net/sevenjoin/article/details/81943864