1 / 42

MAP SINIFI

MAP SINIFI. MAP. C + + da Haritalar değer çiftlerini benzersiz anahtar içeren birleşmeli konteyner olarak sırala r . Haritalar onların anahtarları na göre sıralanır. Map Constructors & Destructors. Haritalar; varsayılan yöntemleri, kopyalar ve tahsis eder. Map operators.

adsila
Télécharger la présentation

MAP SINIFI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MAP SINIFI

  2. MAP C + + da Haritalar değer çiftlerini benzersiz anahtar içeren birleşmeli konteyner olarak sıralar. Haritalar onların anahtarlarına göre sıralanır.

  3. Map Constructors & Destructors Haritalar; varsayılan yöntemleri, kopyalar ve tahsis eder.

  4. Map operators Karşılaştırma = harita elemanlarını atamak

  5. int main () { map<char,int> birinci; map<char,int> ikinci; birinci['x']=8; birinci['y']=16; birinci['z']=32; birinci['k']=64; ikinci=birinci; // ikinci 4 oldu birinci=map<char,int>(); // ilk anda bostur cout << "Birincinin uzunlugu: " << int (birinci.size()) << endl; cout << "ikincinin uzunlugu : " << int (ikinci.size()) << endl; return 0; }

  6. Map typedefs Bir harita typedefs

  7. begin • Haritanın başlangıç elemanına dönen bir fonksiyondur.

  8. end • Bir haritanın sadece son elemanını döndüren fonksiyondur.

  9. int main () { map<char,int> mb; map<char,int>::iterator bu; mb['b'] = 100; mb['a'] = 200; mb['c'] = 300; // show content: for ( bu=mb.begin() ; bu != mb.end(); bu++ ) cout << (*bu).first << " => " << (*bu).second << endl; return 0; }

  10. clear • Haritadaki tüm unsurlarını kaldırır

  11. int main () { map<char,int> haritam; map<char,int>::iterator it; haritam['x']=100; haritam['y']=200; haritam['z']=300; cout << "haritamin elemanlari:\n"; for ( it=haritam.begin() ; it != haritam.end(); it++ ) cout << (*it).first << " => " << (*it).second << endl; haritam.clear(); cout << "haritamin elemanlari:\n"; for ( it=haritam.begin() ; it != haritam.end(); it++ ) cout << (*it).first << " => " << (*it).second << endl; return 0; }

  12. count • Belirli bir anahtarla eşleşen elemanların sayısını verir

  13. int main () { map<char,int> haritam; char c; haritam ['a']=101; haritam ['c']=202; haritam ['f']=303; for (c='a'; c<'h'; c++) { cout << c; if (haritam.count(c)>0) cout << " haritamin elemanidir.\n"; else cout << " haritamin elemani degildir.\n"; } return 0; }

  14. empty • Harita içeriğinin boş ya da dolu olma durumunu kontrol eden fonksiyondur.

  15. int main () { map<char,int> haritam; haritam['a']=10; haritam['b']=20; haritam['c']=50; while (!haritam.empty()) { cout << haritam.begin()->first << " => "; cout << haritam.begin()->second << endl; haritam.erase(haritam.begin()); } return 0; }

  16. equal_range • Sadece geçmiş son öğeleri ve belirli bir anahtarla eşleşen ilk tekrarlayıcılaradöner

  17. int main () { map<char,int> haritam; pair<map<char,int>::iterator,map<char,int>::iterator> ret; haritam['a']=10; haritam['b']=5; haritam['c']=50; ret = haritam.equal_range('b'); cout << "en alt nokta "; cout << ret.first->first << " => " << ret.first->second << endl; cout << "en ust nokta "; cout << ret.second->first << " => " << ret.second->second << endl; return 0; }

  18. erase • Map sınıfında silme yapmak için erase() fonksiyonu kullanılır.

  19. int main () { map<char,int> haritam; map<char,int>::iterator bu; haritam['a']=10; haritam['b']=20; haritam['c']=30; haritam['d']=40; haritam['e']=50; haritam['f']=60; bu=haritam.find('b'); haritam.erase (bu); // b yi siler haritam.erase ('c'); // c yi siler bu=haritam.find ('e'); haritam.erase ( bu, haritam.end() ); // e yi siler for ( bu=haritam.begin() ; bu != haritam.end(); bu++ ) cout << (*bu).first << " => " << (*bu).second << endl; return 0;}

  20. find • İstenilen elemanı bulmak için kullanılan fonksiyondur.

  21. int main () { map<char,int> haritam; map<char,int>::iterator it; haritam['a']=50; haritam['b']=100; haritam['c']=150; haritam['d']=200; it=haritam.find('b'); //bul ve sil satırları haritam.erase (it); haritam.erase (haritam.find('d')); cout << "haritam da kalan elemanlar:" << endl; cout << "a => " << haritam.find('a')->second << endl; cout << "c => " << haritam.find('c')->second << endl; return 0; }

  22. insert • Bir haritaya öğeler eklemek için kullanılır

  23. int main () { map<char,int> haritam; map<char,int>::iterator bu; pair<map<char,int>::iterator,bool> ret; // insert fonksiyonu sürümü (tek parametre) : haritam.insert ( pair<char,int>('a',100) ); haritam.insert ( pair<char,int>('z',200) ); ret=haritam.insert (pair<char,int>('z',500) ); if (ret.second==false) { cout << "eleman z zaten "; cout << " su deger ile var " << ret.first->second <<"\n"<< endl; }

  24. //ikinci insert fonksiyonu sürümü (ipucu konumu ile): bu=haritam.begin(); haritam.insert (bu, pair<char,int>('b',300)); // max etkinlik ekleme haritam.insert (bu, pair<char,int>('c',400)); //max etkinlik yok // Üçüncü insert fonksiyonu sürümü (aralık ekleme): map<char,int> anothermap; anothermap.insert(haritam.begin(),haritam.find('c')); cout << "haritamin icerigi:\n"; for ( bu=haritam.begin() ; bu != haritam.end(); bu++ ) cout << (*bu).first << " => " << (*bu).second << endl; cout << "baska bir harita icerigi:\n"; for ( bu=anothermap.begin() ; bu != anothermap.end(); bu++ ) cout << (*bu).first << " => " << (*bu).second << endl; return 0; }

  25. key_comp • Tuşları karşılaştırıp döndüren fonksiyondur

  26. int main () { map<char,int> haritam; map<char,int>::key_compare mycomp; map<char,int>::iterator bu; char ust; mycomp = haritam.key_comp(); haritam['a']=100; haritam['b']=200; haritam['c']=300; cout << "haritamin icerigi:\n"; ust=haritam.rbegin()->first; // son elemaın anahtar degeri bu=haritam.begin(); do { cout << (*bu).first << " => " << (*bu).second << endl; } while ( mycomp((*bu++).first, ust) ); cout << endl; return 0;}

  27. lower_bound • find() fonksiyonuna benzer, ancak lower_bound() aranılan elemandan bir önceki değeri verir.

  28. int main () { map<char,int> haritam; map<char,int>::iterator bu,alt,ust; haritam['a']=20; haritam['b']=40; haritam['c']=60; haritam['d']=80; haritam['e']=100; alt=haritam.lower_bound ('b'); // alt nokta b ust=haritam.upper_bound ('d'); // ust nokta d değil haritam.erase(alt,ust); // alt ust silindi for ( bu=haritam.begin() ; bu != haritam.end(); bu++ ) cout << (*bu).first << " => " << (*bu).second << endl; return 0; }

  29. max_size • Elemanların azami dönme sayısını tutar

  30. int main () { int i; map<int,int> benim; if (benim.max_size()>1000) { for (i=0; i<1000; i++) benim[i]=0; cout << "ogem 1000 den buyuktur.\n"; } else cout << "ogem 1000den kucuktur.\n"; return 0; }

  31. rbegin • Harita sonuna döndüren bir reverse_iterator

  32. int main () { map<char,int> haritam; map<char,int>::reverse_iterator o; haritam['x'] = 100; haritam['y'] = 200; haritam['z'] = 300; for ( o=haritam.rbegin() ; o != haritam.rend(); o++ ) cout << o->first << " => " << o->second << endl; return 0; }

  33. rend • Harita başına dönen bir reverse_iterator

  34. int main () { map<char,int> haritam; map<char,int>::reverse_iterator rit; haritam['x'] = 100; haritam['y'] = 200; haritam['z'] = 300; for ( rit=haritam.rbegin() ; rit != haritam.rend(); rit++ ) cout << rit->first << " => " << rit->second << endl; return 0; }

  35. size • Harita öğelerinin sayısını verir

  36. int main () { map<char,int> haritam; haritam['a']=101; haritam['b']=202; haritam['c']=30; haritam['d']=101; haritam['e']=232; haritam['f']=345; cout << "haritam.size() : " << (int) haritam.size() << endl; return 0; }

  37. swap • Başka bir harita içeriğini takas eder

  38. int main () { map<char,int> senin; map<char,int> benim; map<char,int>::iterator bu; senin['x']=100; senin['y']=200; benim['a']=11; benim['b']=22; benim['c']=33; senin.swap(benim); cout << "senin elemanlarin:\n"; for ( bu=senin.begin() ; bu != senin.end(); bu++ ) cout << (*bu).first << " => " << (*bu).second << endl; cout << "benim elemanlarim:\n"; for ( bu=benim.begin() ; bu != benim.end(); bu++ ) cout << (*bu).first << " => " << (*bu).second << endl; return 0;}

  39. upper_bound • find() fonksiyonuna benzer, ancak upper_bound() aranılan elemandan bir sonraki değeri verir.

  40. int main () { map<char,int> haritam; map<char,int>::iterator bu,alt,ust; haritam['a']=20; haritam['b']=40; haritam['c']=60; haritam['d']=80; haritam['e']=100; alt=haritam.lower_bound ('b'); // alt nokta b ust=haritam.upper_bound ('d'); // ust nokta d haritam.erase(alt,ust); // alt ve ust noktaları siler for ( bu=haritam.begin() ; bu != haritam.end(); bu++ ) cout << (*bu).first << " => " << (*bu).second << endl; return 0; }

  41. value_comp • Değerleri karşılaştırır ve döndürür fonksiyonu

  42. int main () { map<char,int> haritam; map<char,int>::iterator bu; pair<char,int> buyuk; haritam['x']=1001; haritam['y']=2002; haritam['z']=3003; cout << "haritamin icerigi:\n"; buyuk=*haritam.rbegin(); bu=haritam.begin(); do { cout << (*bu).first << " => " << (*bu).second << endl; } while ( haritam.value_comp()(*bu++, buyuk) ); return 0; }

More Related