map جفتهایی از کلید و مقدار رو نگهداری می کنه و هر کلید فقط به یک مقدار مربوط می شه ....
multimap هم داریم توی multimap هر کلید ممکنه به دو یا چند کلید مربوط بشه
درواقع کلید اسمیه که به یک مقدار داده می شه وقتی مقدار ذخیره شد با استفاده از کلید قابل دستیابی است
( با استفاده از کلید می تونیم مقدار رو جست و جو کنیم )
کد:
#include<map>
#include<string>
using namespace std;
.
.
.
map<string,long>m;
که اینجا کلید از جنس رشته تعریف شده و به هر رشته یک عدد long رو نسبت می دیم
مثلا تو این مثال میخوایم اسامی افراد رو با شماره تلفنهاشون داشته باشیم :
کد:
m.insert(pair<string,long>("ali",2234);
m.insert(pair<string,long>("reza",4467);
m.insert(pair<string,long>("gholi",6709);
حالا میخوایم با استفاده از کلیدمون (اسامی افراد ) مقدار ( شماره تلفن ) رو پیدا کنیم ...برای اینکار اول باید یه اشاره گر تعریف کنیم :
کد:
map<string,long>::itrator it;
حتما تا الان فهمیدید که برای تعریف اشاره گر از itrator:: استفاده می شه .
مثلا میخوایم شماره ali رو پیدا کنیم :
کد:
it=m.find("ali");
if(it!=m.end())
cout<<it->second;
برنامه کاملش هم اینه :
کد:
#include<iostream>
#include<map>
#include<string>
using namespace std;
void main()
{
map <string ,long> m;
m.insert(pair<string,long>("ali",123));
m.insert(pair<string,long>("reza",345));
m.insert(pair<string,long>("mina",567));
map<string,long>::iterator it;
string name;
cin>>name;
it=m.find(name);
if(it!=m.end())
cout<<it->first<<" "<<it->second<<endl;
else
cout<<"It hasnt found\n";
}
البته همینطور که می بینید مثالهایی که می زنم خیلی ساده هستند .....مثلا شما می تونید اشیایی از کلاس رو توی map ذخیره کنید ....( شاید آخر دست یه سری مثال تکمیلی هم گذاشتم ولی خوب این بستگی داره خودم چقدر یاد گرفته باشم !!!!)