從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