简述
map的意思是“映射”,头文件<map>,定义时含三个参数.A.B.C
(定义示例(map<A,B>C;),这时候可以把map<A,B>看成一种类型,
后面加变量名),C为变量名 ,A,B为类型名例如(int,double,s
tring,struct,char......),表示从数学二维坐标系每一个x对应唯一的
一个y,A类似于x,B类似于y,不同的是数学里xy是数值,map里AB
是一种数据类型。你每输入一个数据项到C里去,map都会对他进
行按A的大小升序排序,如:

1 #include <iostream> 2 #include <map> 3 using namespace std; 4 int main() 5 { 6 map<int,double>a; 7 a[8]=78.9;//8为int,78.9为double,与上一行对应 8 a[2]=90.34; 9 for(auto it=a.begin();it!=a.end();it++) 10 cout<<(*it).first<<" "<<it->second<<endl; 11 return 0; 12 }
定义
map<string,int>a;//此时我定义了一个string映射到int的空map,变量为a;
赋值
a["hello eer ko!"]=87;
a["cell"]=56;
string d="jiool";a[d]=42;
//完成后a里面的顺序按string的大小升序排序,大小可以参考strcmp函数
输出
1.遍历方式 为选代器遍历
2.a里面的一个元素分为两部分first和second
first对应A,second对应B // A,B是什么,去我的简述里看
如果是指向map里面元素的指针p,可以如此访问
(*p).first ,(*p).second,p->first,,,,,
3.cout<<a["cell"]; //输出56,我在赋值那一部分赋过值

1 #include <iostream> 2 #include <map> 3 using namespace std; 4 int main() 5 { 6 map<string,double>a; 7 string b; 8 double c; 9 for(auto i=0;i<3;i++) 10 { 11 cin>>b>>c; 12 a[b]=c; 13 } 14 cout<<endl; 15 for(auto it=a.begin();it!=a.end();it++) 16 cout<<it->first<<" "<<it->second<<endl; 17 return 0; 18 }