从C到C++ STL之map


简述

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 }
View Code

 

定义

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 }
View Code

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM